我有一个包含 .zip 文件路径的列表,由下面的命令收集。我想将它们解压缩到它们所在的目录中。
find . -name "*.zip" -print > outfile.txt
outfile.txt 如下:
./TWO/two.zip
./ONE/one.zip
我有run_all
脚本来自动化它,但我如何定义输出目录?
run_all outfile.txt 'unzip -u $1'
答案1
使用-d
旗子。
unzip -d output_dir/ zipfiles.zip
为了实现自动化:
#!/bin/bash
for i in `cat outfile.txt`; do
output_dir=$(dirname $i)
unzip -d $output_dir $i
done
编辑:正如@dessert 所建议的,您可以这样做作为更好的选择:
while IFS='' read -r i || [[ -n "$i" ]]; do unzip -d ${i%/*} $i; done <outfile.txt