Você pode querer usar um script de shell:
for f in *.gz
do
zcat "$f" > "other/folder/$(basename "$f" ".gz")"
done
Eu gostaria de gunzip um diretório cheio de arquivos compactados e canalizar a saída (preservando os arquivos originais) para um diretório diferente. Preciso que os nomes originais permaneçam iguais. Então ...
gunzip -c *.gz > file/path/filename
# Search for all .gz in current directory and redirect output here. How do I grab the name of the file found using the wildcard?
Obrigado pela sua ajuda
Atualização: script final abaixo
FILES= /foo/bar/*.gz
for gz in $FILES; do
echo "unzipping $gz..." 1>&2
fn=$(basename $gz .gz)
gunzip -c $gz > /new/foobar/$fn
done
Com o GNU Parallel você pode fazer:
parallel gunzip -c {} '>' /new/foobar/{/.} ::: /foo/bar/*.gz
O GNU Parallel leva literalmente 10 segundos para instalar:
wget pi.dk/3 -qO - | sh -x
Assista aos vídeos de introdução para saber mais: link