como posso extrair vários arquivos gzip no diretório e subdiretórios?

4

Eu tentei os comandos gzip e gunzip , mas também obtenho

gunzip *.gz 
gzip: invalid option -- 'Y' 

gunzip -S-1800-01-01-000000-g01.h5.gz  
gzip: compressed data not read
 from a terminal. Use -f to force decompression. For help, type: gzip -h

Se eu tentar a opção -f , levará muito tempo para trabalhar em um único arquivo e o comando não será executado com êxito. Estou faltando alguma coisa?

    
por Herman Toothrot 03.11.2015 / 13:33

2 respostas

7

Você pode usar o comando abaixo.

Vá para o diretório em que o arquivo .gz está e execute o comando:

for f in *.gz ; do gunzip -c "$f" > /home/$USER/"${f%.*}" ; done

Ele irá extrair todo o arquivo com o nome original e armazená-lo no diretório home do usuário atual ( /home/username ). Você pode mudá-lo para outro lugar.

EDITAR:

gunzip *.gz

Este comando também funcionará. Mas, por padrão, ele substitui o arquivo original.

    
por pl_rock 03.11.2015 / 13:50
3

Opção nº 1 : descompacte vários arquivos usando aspas simples (versão curta)

gunzip '*.gz'

Observe que *.gz word é colocada entre duas aspas simples, de modo que o shell não a reconhecerá como um caractere curinga.

Opção nº 2 : descompacte vários arquivos usando o shell for loop (versão longa)

for g in *.gz; do gunzip $g; done

A fonte

EDITAR:

Acabei de tentar:

gunzip -dk *.gz

e funcionou.

-d para descompactar e k para manter os arquivos originais.

    
por Bilal 03.11.2015 / 13:58

Tags