Como descompactar em um determinado diretório

2

Eu tenho uma lista com o caminho dos arquivos .zip, reunidos pelo comando abaixo. Eu quero descompactá-los nesse diretório, onde eles existem.

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

outfile.txt é como:

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

Eu tenho o script run_all para automatizá-lo, mas como posso definir o diretório de saída?

run_all outfile.txt 'unzip -u '
    
por Krsztr 11.01.2018 / 08:53

1 resposta

2

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
    
por Mukesh Sai Kumar 11.01.2018 / 08:55