Usando gzip
, basename
e um loop:
for pathname in /mydata/*.gz; do
gzip -dc "$pathname" >"/myoutput/$( basename "$pathname" .gz )"
done
Isso iterará todos os nomes de caminho que corresponderem a /mydata/*.gz
e, para cada um desses nomes, usará gzip
para descompactar ( -d
) o arquivo na saída padrão ( -c
). A saída é redirecionada para um arquivo em /myoutput
. O nome do arquivo será o mesmo do arquivo original, mas sem o sufixo .gz
do nome do arquivo ( basename
é usado para remover esse bit do nome do caminho, bem como para remover a string /mydata/
inicial).
O comando dentro do loop também pode ser escrito como
gzip -d -o "/myoutput/$( basename "$pathname" .gz )" "$pathname"
que permite que gzip
grave o arquivo de saída diretamente em vez de redirecioná-lo.
Isso pressupõe que o arquivo em /mydata
seja legível e que você tenha permissão para criar arquivos em /myoutput
.