Como compactar vários arquivos em um arquivo gz?

68

Eu tenho 100 arquivos: cvd1.txt , cvd2.txt ... cvd100.txt

Como gzip 100 arquivos em um arquivo .gz , para que, depois de gunzip , eu tenha cvd1.txt , cvd2.txt ... cvd100.txt separadamente?

    
por Tony 29.03.2011 / 03:22

6 respostas

35

se você tiver zip,

zip myzip.zip cvd*.txt

Não precisa tar deles primeiro.

    
por 29.03.2011 / 03:30
73

Você deseja tar dos seus arquivos juntos e gzip do arquivo tar resultante.

tar cvzf cvd.tar.gz cvd*.txt

Para descompactar o arquivo tar gzip'd você faria:

tar xvzf cvd.tar.gz -C /path/to/parent/dir

Isso extrairia seus arquivos no diretório /path/to/parent/dir

    
por 29.03.2011 / 03:26
19

Você vai querer usar tar, assim:

tar -czvf file.tar.gz cvd*.txt

tar coloca os arquivos juntos, enquanto o gzip realiza a compactação.

Quoth the gzip manpage:

If you wish to create a single archive file with multiple members so that members can later be extracted independently, use an archiver such as tar or zip. GNU tar supports the -z option to invoke gzip transparently. gzip is designed as a complement to tar, not as a replacement

    
por 29.03.2011 / 03:26
12

O gzip por si só não conhece nada sobre estrutura de arquivos. Para fazer o que você quer, primeiro é necessário colocar os arquivos em algum tipo de arquivo contêiner (por exemplo, uma estrutura tar ou similar) e depois gzipar isso. tar tem z e j (para bzip2) alterna em plataformas GNU para fazer isso.

    
por 29.03.2011 / 03:26
4

Você pode fazer isso usando:

gzip my_final_filename.gz my_first_file my_second_file ... my_last_file

gunzip my_final_filename.gz

ou

zip my_final_filename.zip my_first_file my_second_file ... my_last_file

unzip my_final_filename.gz

ou

tar cvzf my_final_filename.tar.gz my_first_file my_second_file ... my_last_file

tar -czvf my_final_filename.tar.gz
    
por 02.12.2017 / 08:50
0

Para compactar vários arquivos com padrões diferentes, poderíamos isso:

tar -czvf deploy.tar.gz **/Alice*.yml **/Bob*.json

isso adicionará todos os arquivos .yml que começarem com Alice de qualquer subdiretório e adicionarão todos os arquivos .json que começarem com Bob de qualquer subdiretório.

    
por 23.08.2017 / 11:12