¿Cómo uso 7-Zip CLI para Windows para crear archivos .tar.gz?

30

¿Cómo puedo usar la CLI 7-Zip ( 7za.exe ) en Windows para crear archivos .tgz, como uso tar zcvf archive.tgz source_filesen Linux?

f.ardeliano
fuente

Respuestas:

35

Si desea hacerlo de una sola línea:

7za.exe a -ttar -so -an source_files | 7za.exe a -si archive.tgz

El -aninterruptor le dice a 7-Zip que no analice el parámetro de línea de comando archive_name que normalmente se requiere.

afrazier
fuente
nota: si no tiene 7za.exe en su carpeta 7zip, también puede usar 7zg.exe si está disponible
anion
1
En mi caso, ni 7za.exe ni 7zg.exe estaban allí, pero sí 7z.exe.
JoL 01 de
tar se requiere porque tgz o tar.gz es un archivo tar que se ha comprimido. 7zip simplemente no tiene la capacidad de hacerlo todo en un solo paso, por lo que debe canalizar la salida del comando que almacena sus archivos en el que comprime su tar ^^. Es por eso que cuando abre un tar.gz en 7zip, ve un archivo tar dentro.
DGoiko
@DGoiko Conozco esa parte: simplemente no entendí por qué se requiere el archive.tar nombre de archivo cuando los datos se transmiten a stdout.
Afrazier
Oh ya veo. Pensé que gz necesitaba el nombre de archivo interno para que se mostrara correctamente, pero tal vez estaba equivocado.
DGoiko
5

Si solo está comprimiendo 1 archivo en el tarball 7za a archive.tgz source_file, funcionará.

Si desea agregar muchos archivos al tar, debe hacerlo en dos pasos: crear el tar y 7za a archive.tar source_files luego comprimirlo7za a archive.tgz archive.tar

Y, opcionalmente, elimine el alquitrán 'temporal' del archive.tar

Chris Kent
fuente