gunzip vários arquivos

1

Eu tenho um diretório onde existem várias pastas, cada pasta contém um arquivo .gz. Como posso descompactar todos eles de uma vez?

Meus dados parecem com isso

Lista de pastas

A
B
C
D

Em todos eles existe um arquivo como

A
a.out.gz
B
b.out.gz
C
c.out.gz
D
d.out.gz
    
por HoHoHo 11.05.2016 / 13:37

2 respostas

4

Isso usa gunzip para descompactar todos os arquivos em uma pasta e ter o final .out.gz

gunzip */*.out.gz

Isso fará "loop" * através de todas as pastas que contiverem um arquivo zipado. Deixe-me adicionar um exemplo:

A
a.out.gz
B
b.out.gz
C
c.out.gz
D
d.out.gz
E
e.out

Usando o comando acima, a.out.gz b.out.gz c.out.gz d.out.gz serão todos descompactados, mas não tocará em e.out , pois não está compactado.

* isso é chamado de globbing ou expansão de nome de arquivo . Talvez você queira ler mais sobre aqui .

    
por 11.05.2016 / 13:42
0
find . -type f -name "*.gz" -execdir gunzip {} \;

a opção execdir para encontrar causas 'find' para 'cd' em cada diretório por vez e executar o comando exec (gunzip, neste caso) e, em seguida, 'cd' de volta para o cwd

    
por 11.05.2016 / 14:33