Comandos LinuxExplicados en español
/
Ficha104 / 104
Categoría
Compresión
Ejemplos
5
Ver también
unzip · tar

zip

zip (comprimir en formato ZIP)

Empaqueta y comprime archivos y carpetas en un archivo .zip.

Sirve para empaquetar varios archivos o carpetas en un solo archivo comprimido .zip. Es muy común para compartir archivos porque funciona bien en Windows, macOS y Linux. Lo usas cuando quieres mandar varios archivos en un solo archivo más ligero. En Debian puede no venir instalado: sudo apt install zip.

Sintaxiszip [opciones] ARCHIVO.zip [ARCHIVO o CARPETA]...
Precaución

Con -m, zip borra los archivos originales después de meterlos al .zip.

§ 1

Despiece

5 ejemplos
Comprimir varios archivos

Comprimir varios archivos

4 piezas
Lámina01 / 05
Comandozip notas.zip nota1.txt nota2.txt
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1zipComandoComando para crear archivos .zip.
2notas.zipValorNombre del archivo .zip a crear.
3nota1.txtArgumentoPrimer archivo a comprimir.
4nota2.txtArgumentoSegundo archivo a comprimir.
Resultado

Se crea notas.zip con nota1.txt y nota2.txt dentro.

Comprimir una carpeta completa

4 piezas
Lámina02 / 05
Comandozip -r proyecto.zip proyecto/
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1zipComandoComando para comprimir.
2-rOpciónRecursivo: incluye todos los archivos y subcarpetas.
3proyecto.zipValorArchivo zip de salida.
4proyecto/ArgumentoCarpeta a comprimir.
Resultado

Se empaqueta y comprime toda la carpeta proyecto/ dentro de proyecto.zip.

Comprimir con máxima compresión

5 piezas
Lámina03 / 05
Comandozip -9 -r datos.zip datos/
Piezas5
Escala1:1
N.ºPiezaTipoQué hace
1zipComandoComando zip.
2-9OpciónUsa nivel máximo de compresión.
3-rOpciónIncluye carpetas recursivamente.
4datos.zipValorNombre del archivo zip.
5datos/ArgumentoCarpeta a comprimir.
Resultado

El archivo queda lo más comprimido posible; tarda un poco más que con compresión normal.

Excluir archivos .log

6 piezas
Lámina04 / 05
Comandozip -r app.zip app/ -x "*.log"
Piezas6
Escala1:1
N.ºPiezaTipoQué hace
1zipComandoComando zip.
2-rOpciónRecursivo.
3app.zipValorArchivo zip de salida.
4app/ArgumentoCarpeta a comprimir.
5-xOpciónExcluye archivos que coincidan con el patrón.
6"*.log"ValorPatrón para excluir todos los archivos .log (entre comillas para proteger *).
Resultado

Se crea app.zip sin incluir ningún archivo con extensión .log.

Actualizar un zip con archivos nuevos

4 piezas
Lámina05 / 05
Comandozip -u respaldo.zip nuevo.txt
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1zipComandoComando zip.
2-uOpciónActualiza: agrega o reemplaza solo lo necesario.
3respaldo.zipValorArchivo zip existente.
4nuevo.txtArgumentoArchivo a agregar o actualizar en el zip.
Resultado

Si respaldo.zip existe, se agrega nuevo.txt (o se actualiza si cambió). Si no existe, zip crea el archivo.

§ 2

Opciones

Las que sí vas a usar
OpciónQué hace
-r--recurse-pathsIncluye la carpeta y todo su contenido recursivamente.
-q--quietNo muestra mensajes mientras comprime.
-v--verboseMuestra información detallada del proceso.
-1Usa compresión rápida (menor compresión).
-9Usa máxima compresión (más lento).
-u--updateSolo agrega archivos nuevos o actualizados al zip existente.
-x--excludeExcluye archivos o patrones (ej. "*.log").
-m--moveMueve archivos al .zip (los borra de origen tras comprimir).
§ 3

Fallas comunes

FallaRemedio
Olvidar -r al comprimir una carpeta y solo crear un zip vacío o incompleto.Agrega -r: zip -r carpeta.zip carpeta/. Así incluye todos los archivos y subcarpetas.
El nombre del zip va después de las opciones pero antes de lo que comprimes; confundir el orden.El orden correcto es zip [opciones] ARCHIVO.zip [archivos...]. Primero el nombre del zip, luego lo que quieres meter.
Comprimir algo que ya está dentro de la ruta y crear un zip con rutas muy largas o confusas.Corre el comando desde la carpeta padre o ten cuidado con las rutas relativas. zip guarda las rutas tal como las indicas.
Usar * sin comillas en shell y que expanda antes de zip.Para patrones con -x o cuando quieras que zip los interprete, pon comillas: -x "*.log". Así el patrón llega a zip y no se expande en el shell.
§ 4

Preguntas frecuentes

¿Cómo comprimo una carpeta en .zip?
Con zip -r carpeta.zip carpeta/. La opción -r hace que incluya todo lo que hay dentro de la carpeta de forma recursiva.
¿Cuál es la diferencia entre zip y tar.gz?
zip empaqueta y comprime en un solo paso (.zip). tar empaqueta primero (.tar) y luego gzip comprime (.tar.gz). Ambos son comunes; .zip es muy portable entre sistemas, .tar.gz suele dar buena compresión en Linux.
¿Cómo comprimo con máxima compresión?
Usa la opción -9: zip -9 -r archivo.zip carpeta/. Cuanto mayor el número (1-9), mayor la compresión, pero más lento.
¿Puedo excluir archivos al crear un zip?
Sí, con -x y un patrón entre comillas. Por ejemplo zip -r app.zip app/ -x "*.log" excluye todos los archivos con extensión .log.
¿Qué hace zip -u?
Actualiza un archivo .zip existente: agrega archivos nuevos y reemplaza los que cambiaron desde la última vez, sin volver a comprimir todo desde cero.
§ 5

Ver también