¿Cómo puedo crear y extraer archivos zip desde la línea de comandos?
¿Cómo puedo crear y extraer archivos zip desde la línea de comandos?
Respuestas:
Típicamente se utiliza tarpara crear un archivo sin comprimir y, o bien gzipo bzip2para comprimir ese archivo. El correspondiente gunzipy bunzip2los comandos pueden ser utilizados para descomprimir dicho archivo, o simplemente puede usar banderas en el tarcomando para realizar la descompresión.
Si se refiere específicamente al formato de archivo Zip , simplemente puede usar los comandos zipy unzip.
Para comprimir:
zip squash.zip file1 file2 file3
o comprimir un directorio
zip -r squash.zip dir1
Para descomprimir:
unzip squash.zip
esto lo descomprime en su directorio de trabajo actual.
zip -r9 archive.zip files...sintaxis (-r = recursiva -9 = compresión máxima).
zippuede crear muchos sabores diferentes de archivos .ZIP, así como usar muchos compresores diferentes. Por otro lado, hay una serie de otras herramientas de compresión con nombres similares: 7-Zip, gzip, bzip2, rzip, etc., que no son intercambiables.
cd dir1; zip -r ../squash.zip *
unzip -d myfolder squash.zippara extraer en un nuevo directorio separado ( myfolder) en lugar de colocar todos los archivos directamente en el directorio actual, lo que puede ser molesto si el archivo zip contiene muchos archivos y directorios en su nivel superior. Esto imita cómo funciona la mayoría de las herramientas de descompresión de UI.
Hay una gran cantidad de formas diferentes de comprimir y descomprimir en derivados de UNIX, por lo que supondré que querías decir "zip" en el sentido genérico en lugar de un formato de archivo específico .
Puede comprimir archivos (en formato comprimido) con el tarprograma GNU :
tar -zcvf myfile.tgz .
que hará el directorio actual. Reemplace .con otros nombres de archivo si desea algo más.
Para descomprimir ese archivo, use:
tar -zxvf myfile.tgz
Eso supone, por supuesto, que tiene la tarcapacidad de hacer la compresión y combinar archivos en uno.
De lo contrario, puede usar tar cvfseguido de gzip(nuevamente, si está disponible) para la compresión y gunzipseguido de tar xvf.
Para el manejo específico de archivos en formato ZIP, recomendaría descargar 7zipy usar eso: reconoce una gran variedad de formatos de archivo, incluido el ZIP.
tar jcvf file.tar.bz2...para comprimir en formato bzip2 o tar Jcvf file.tar.xz ...para compresión xz.
Bueno, cuando se trata de distribuir archivos para una variedad de sistemas operativos, recomendaría 7-zip .
Por lo general, en el paquete p7zip, obtendrá el comando 7zy 7za, con el que puede crear sus propios archivos 7z.
7zatambién puede descomprimir archivos zip estándar ( pkzip ) (y crearlos también con el -tzipinterruptor).
Apresamiento:
7za a archive.7z file1 file2 directory/
Descomprimiendo:
7za x archive.7z
También puede crear archivos autoextraíbles con el -sfxinterruptor:
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 aconsejar una herramienta para eso: PeaZip ).
Si desea usar el mismo algoritmo de compresión con sus tarballs, use el -Jinterruptor con tar:
tar cJf archive.tar.xz file1 file2 dir
xzes una herramienta UNIX, que utiliza LZMA2 para la compresión, pero funciona de la forma gz, bz2etc funciona. Incluso funciona como un filtro.
7z no crea archivos con información completa del sistema de archivos en UNIX, por lo que deberá usarlo tarantes de usar 7z (pero dado que 7z almacena otra información sobre el tararchivo, recomiendo usarlo xz, ya que está diseñado para ello):
tar cf - file1 file2 dir | 7za z -si archive.tar.7z
atool, es una pequeña herramienta agradable que hace que el uso de muchos compresores diferentes sea más cómodo. Asociar eso ay crear un archivo se convierte a arc.7z folder/o extraer un simplea arc.7z
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.
BSD Tar también puede hacer esto
bsdtar acf bravo.zip alfa.jpg
O:
bsdtar xf bravo.zip
tartiene la ventaja de admitir bastantes formatos de compresión adicionales en comparación con GNU tary otros tars. El mayor beneficio es, tal vez, que lo hace mientras usa una tarsintaxis similar . Seguramente se puede utilizar 7z, unrar, unzip, etc desde la línea de comandos, pero usar una diferente sintaxis.
La respuesta más estándar es pax, que se recomienda sobre cpioy tar.
A diferencia de cpioPOSIX tar, pero al igual que GNU tar, paxpuede archivar y comprimir el archivo. Este comportamiento es diferente del zipque comprime cada archivo antes de colocarlo en el archivo.
paxSoporta archivos zip?
paxarchivos!
Esto cubre solo la extracción.
Para eso, comencé a usar dtrx.
El objetivo es eliminar la complejidad. Así que simplemente le 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á.
dtrxestá disponible en la mayoría de los repositorios, por lo que puede apt| yuminstalarlo.
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 lo uso zipcon la opción -@.
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 -@