Use o sinalizador -d
.
unzip -d output_dir/ zipfiles.zip
Para automatizá-lo:
#!/bin/bash
for i in 'cat outfile.txt'; do
output_dir=$(dirname $i)
unzip -d $output_dir $i
done
EDIT: Como sugere @dessert, você pode fazer isso como uma alternativa melhor:
while IFS='' read -r i || [[ -n "$i" ]]; do unzip -d ${i%/*} $i; done <outfile.txt