it-swarm-es.com

¿Cómo comprimo / descomprimo en la línea de comandos de Unix?

¿Cómo puedo crear y extraer archivos Zip desde la línea de comandos?

570
joachim

Por lo general, uno usa tar para crear un archivo sin comprimir y gzip o bzip2 para comprimir ese archivo. Los correspondientes gunzip y bunzip2 los comandos se pueden usar para descomprimir dicho archivo, o simplemente puede usar banderas en el comando tar para realizar la descompresión.

Si se refiere específicamente a formato de archivo Zip , simplemente puede usar los comandos Zip y unzip.

Para comprimir:

Zip squash.Zip file1 file2 file3

o para comprimir un directorio

Zip -r squash.Zip dir1

Para descomprimir:

unzip squash.Zip

esto lo descomprime en su directorio de trabajo actual.

698
Justin Ethier

Hay un verdadero vasto número de formas diferentes de comprimir y descomprimir en derivados de UNIX, así que voy a suponer que quiso decir "Zip" en el sentido genérico en lugar de un específico formato de archivo.

Puede comprimir archivos (en formato comprimido) con el programa GNU tar:

tar -zcvf myfile.tgz .

que hará el directorio actual. Reemplazar . con otros nombres de archivo si quieres algo más.

Para descomprimir ese archivo, use:

tar -zxvf myfile.tgz

Eso supone, por supuesto, que tiene un tar capaz de hacer la compresión y combinar archivos en uno.

Si no, puedes usar tar cvf seguido de gzip (de nuevo, si está disponible) para compresión y gunzip seguido de tar xvf.


Para el manejo específico de archivos en formato Zip, recomendaría descargar 7Zip y al usar eso, reconoce una variedad de formatos de archivo enorme, incluido el Zip.

68
user14408

Si no tiene instalados paquetes Zip y descomprimir y tiene Java, puede usar jar para descomprimir:

jar -xf file.Zip
33
mlocke

Bueno, cuando se trata de distribuir archivos para una variedad de sistemas operativos, recomendaría 7-Zip .

Generalmente en el paquete p7Zip, obtendrás el 7z y 7za comando, con el que puede crear sus propios archivos 7z.

7za también puede descomprimir archivos estándar ( pkzip ) Zip (y crearlos también con el -tzip cambiar).

Apresamiento:

7za a archive.7z file1 file2 directory/

Descomprimiendo:

7za x archive.7z

También puede crear archivos autoextraíbles con -sfx interruptor:

7za a -sfx archive.exe files1 file2 dir

Recomiendo este método en caso de que los usuarios de Windows no puedan abrir archivos 7z (en caso de que desee recomendar una herramienta para eso: PeaZip ).

Si quieres usar el mismo algoritmo de compresión con tus tarballs, usa -J cambiar con tar:

tar cJf archive.tar.xz file1 file2 dir

xz es una herramienta UNIX, que utiliza LZMA2 para la compresión, pero funciona de la manera gz, bz2, etc. funciona. Incluso funciona como un filtro.

7z no crea archivos con información completa del sistema de archivos en UNIX, por lo que necesitaría usar tar antes de usar 7z (pero dado que 7z almacena otra información sobre el archivo tar, recomendaría usando xz, ya que está diseñado para ello):

tar cf - file1 file2 dir | 7za z -si archive.tar.7z
30
polemon
unzip <filename>

y

Zip -r archive.Zip <filename> [filename]

Deberá asegurarse de que estos comandos estén instalados a través de su administrador de paquetes. No es más difícil que usar cualquier otra cosa en la línea de comando. Ciertamente es más simple que crear archivos con tar.

23
Starfish

BSD Tar también puede hacer esto

bsdtar -a -c -f sunday.Zip sunday.jpg

O:

bsdtar -x -f sunday.Zip
4
Steven Penny

La respuesta más estándar es pax , que se recomienda sobre cpio y tar .

A diferencia de cpio y POSIX tar, pero como GNU tar, pax es capaz de archivar archivos y comprimir archivo. Este comportamiento es diferente de Zip , que comprime cada archivo antes de colocarlo en el archivo.

3
mouviciel

Esto cubre solo la extracción.

Para eso, comencé a usar dtrx .

El objetivo es eliminar la complejidad. Así que solo pasa cualquier archivo y se da cuenta de lo que hay que hacer con él. Zip, tar, gz ... El uso es siempre el mismo - dtrx archive.Zip. Hace algunas preguntas y ya está.

dtrx está disponible en la mayoría de los repositorios, por lo que puede apt | yum instalarlo.

2
JackLeo

A menudo me encuentro tratando de comprimir los archivos modificados en mi directorio de trabajo, ya sea para copiar todos los archivos modificados a otro directorio de trabajo de sandbox o para preservarlos por un corto tiempo porque quiero deshacer algunos de los cambios.

En ese caso, copio la lista de archivos modificados a un archivo temporal y uso Zip con la opción [email protected].

Digamos que modifiqué los archivos Foo.h, Bar.cc y TestBar.cc.

Digamos que creo un archivo llamado modified-files.txt cuyo contenido es:

Foo.h
Bar.cc
TestBar.cc

Ejecuto el siguiente comando para comprimir esos archivos:

cat modified-files.txt | Zip modified-files.Zip [email protected]
1
R Sahu