如何解压到指定目录

如何解压到指定目录

我有一个包含 .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

相关内容