¿Comprimir archivos del terminal OS X?

50

En el Finder, existe esta maravillosa capacidad de hacer clic derecho en un archivo o directorio, seleccionar comprimir del menú desplegable y terminar con un archivo comprimido.

¿Es posible hacer lo mismo desde la terminal?

William Jockusch
fuente

Respuestas:

69

Se llama zip.

Esto agrega el archivo fileal archivo file.zip:

zip file.zip file

Por supuesto, para agregar más archivos, simplemente agréguelos como argumentos al comando. Echa un vistazo man zippara más opciones.

A menudo, querrá omitir aquellos .DS_Storearchivos molestos , por ejemplo, comprimir toda la carpeta folderen folder.zip:

zip -vr folder.zip folder/ -x "*.DS_Store"
slhck
fuente
¿Cuál es el (1) después de la palabra zip?
Jacob Raccuia
Ver @JacobRaccuia superuser.com/questions/297702/...
slhck
¿Es el antiguo zip GNU que viene con OS X?
mwfearnley
@mwfearnley Bajo macOS, es Copyright (c) 1990-2008 Info-ZIP. developer.apple.com/legacy/library/documentation/Darwin/…
slhck
el enlace a la página de manual se rompió ... solo use man zipen la línea de comando
commonpike
15

Para comprimir los archivos exactamente como los comprimiría el comando Finder, use:

ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip

Ver man dittopara más detalles:

 The command:
       ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip
 will create a PKZip archive similarly to the Finder's Compress function-
 ality.
qqbenq
fuente
3
Esta es la mejor respuesta porque produce un zip idéntico, mientras que CLI zip o tar es diferente y ligeramente más pequeño. Una pregunta similar con la misma respuesta: stackoverflow.com/questions/10738505/…
Henry Blyth
5

Hay tar (1) y gzip (o bzip2 o lzma). Tar se usa para rodar varios archivos en un archivo, mientras que el de los otros tres se usa para comprimirlo.

En una línea de comando, llamará a tar con un par de opciones para crear un archivo comprimido y descomprimirlo.

P.ej:

tar -c -z -f myarchive.tar.gz -C /home/username Downloads

Este willl -c reate ag -z ipped archive llamado -f ile del directorio -C hange-folder-to y contendrá todos los archivos en la carpeta Descargas. La opción -C es opcional y los argumentos del archivo fuente se tomarán de la carpeta actual si se omiten.

Para referencia: tutorial de alquitrán

Ярослав Рахматуллин
fuente