如何解压到指定目录

Krs*_*ztr 9 bash

我有一个包含 .zip 文件路径的列表,由以下命令收集。我想将它们解压缩到它们存在的那个目录中。

find . -name "*.zip" -print > outfile.txt
Run Code Online (Sandbox Code Playgroud)

outfile.txt 是这样的:

./TWO/two.zip
./ONE/one.zip
Run Code Online (Sandbox Code Playgroud)

我有run_all脚本来自动化它,但我如何定义输出目录?

run_all outfile.txt 'unzip -u $1'
Run Code Online (Sandbox Code Playgroud)

Muk*_*mar 10

使用-d旗帜。

unzip -d output_dir/ zipfiles.zip
Run Code Online (Sandbox Code Playgroud)

要自动化:

#!/bin/bash
for i in `cat outfile.txt`; do
    output_dir=$(dirname $i)
    unzip -d $output_dir $i
done
Run Code Online (Sandbox Code Playgroud)

编辑:正如@dessert 建议的那样,您可以将其作为更好的选择:

while IFS='' read -r i || [[ -n "$i" ]]; do unzip -d ${i%/*} $i; done <outfile.txt
Run Code Online (Sandbox Code Playgroud)