¿Cómo gzip varios archivos en un archivo gz?

74

Tengo 100 archivos: cvd1.txt, cvd2.txt...cvd100.txt

¿Cómo gzip100 archivos en un .gzarchivo, de modo que después de gunzipeso, debería tener cvd1.txt, cvd2.txt... por cvd100.txtseparado?

Tony
fuente

Respuestas:

40

si tienes cremallera

zip myzip.zip cvd*.txt

No los necesito tarprimero.


fuente
1
@ Kurumi- ¿Los programas de Windows como Winzip o 7-zip reconocen los archivos .zip?
1
@Tony. Yo creo que sí. Probé la versión 7-zip de linux con zip y pude extraer. Si lo desea, también hay GNU zip para Windows.
Se pierde zgrep, zcmp, zdiffy todo tipo de herramientas que pueden trabajar en las tuberías por su elección de un formato no transmisible llamado postal. Los usuarios avanzados usan tuberías.
Tankman 六四
83

Desea tarjuntar sus archivos y gzipel archivo tar resultante.

tar cvzf cvd.tar.gz cvd*.txt

Para descomprimir el archivo tar gzip'd harías:

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

Esto extraería sus archivos en el /path/to/parent/dirdirectorio

SiegeX
fuente
66
si nombra el archivo con la extensión .tgz (abreviatura de tar gz), los programas de Windows lo reconocerán como algo que winzip, etc., puede procesar tal cual. ¡Felicidades a SiegeX por tus 10K!
Shellter
23

Querrás usar tar, así:

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

tar pone los archivos juntos, mientras que gzip realiza la compresión.

Quoth la página de manual de gzip:

Si desea crear un único archivo con múltiples miembros para que los miembros puedan extraerse posteriormente de forma independiente, use un archivador como tar o zip. GNU tar admite la opción -z para invocar gzip de forma transparente. gzip está diseñado como un complemento del alquitrán, no como un reemplazo

Dan Fego
fuente
13

gzip por sí solo no sabe nada sobre la estructura de archivos. Para hacer lo que desea, primero debe colocar los archivos en algún tipo de archivo contenedor (por ejemplo, una estructura de tar o similar) y luego gzip eso. tar tiene conmutadores z y j (para bzip2) en plataformas GNU para hacer esto.

Joe
fuente
2
El modificador es en realidad 'z' ('x' es para extraer). Es bueno que hayas mencionado 'j' / bzip2, una compresión mucho más ajustada.
5

Puedes hacerlo usando:

gzip my_final_filename.gz my_first_file my_second_file ... my_last_file

gunzip my_final_filename.gz

o

zip my_final_filename.zip my_first_file my_second_file ... my_last_file

unzip my_final_filename.gz

o

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

tar -czvf my_final_filename.tar.gz
Vahid F
fuente
No creo que tu primer comando funcione. Al menos en general. Si funciona para un shell en particular, debe indicarlo. Votaría si tuviera suficiente reputación.
DPM
@DPM tiene razón, los gzip/gunzipcomandos no funcionaron, devolverá el errorgzip: my_final_filename.gz: No such file or directory
Bilal
1

Para comprimir múltiples archivos con diferentes patrones, podríamos hacer esto:

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

esto agregará todos los archivos .yml que comienzan con Alice desde cualquier subdirectorio y agregará todos los archivos .json que comienzan con Bob desde cualquier subdirectorio.

Sairam Krish
fuente
Ya ha respondido en superuser.com/a/334830/107419
prayagupd