se você tiver zip,
zip myzip.zip cvd*.txt
Não precisa tar
deles primeiro.
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?
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
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
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.
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
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.