Как разархивировать в данный каталог

У меня есть список с путем к файлам .zip, собранный командой ниже. Я хочу разархивировать их в тот каталог, где они существуют.

find . -name "*.zip" -print > outfile.txt

outfile.txt похож на:

./TWO/two.zip
./ONE/one.zip

У меня есть скрипт run_all для его автоматизации, но как я могу определить выходной каталог?

run_all outfile.txt 'unzip -u $1'
4
задан 11 January 2018 в 13:19

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
3
ответ дан 11 January 2018 в 13:19

Другие вопросы по тегам:

Похожие вопросы: