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.
zip [opciones] ARCHIVO.zip [ARCHIVO o CARPETA]...Con -m, zip borra los archivos originales después de meterlos al .zip.
Despiece
5 ejemplosComprimir varios archivos
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | zip | Comando | Comando para crear archivos .zip. |
| 2 | notas.zip | Valor | Nombre del archivo .zip a crear. |
| 3 | nota1.txt | Argumento | Primer archivo a comprimir. |
| 4 | nota2.txt | Argumento | Segundo archivo a comprimir. |
Se crea notas.zip con nota1.txt y nota2.txt dentro.
Comprimir una carpeta completa
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | zip | Comando | Comando para comprimir. |
| 2 | -r | Opción | Recursivo: incluye todos los archivos y subcarpetas. |
| 3 | proyecto.zip | Valor | Archivo zip de salida. |
| 4 | proyecto/ | Argumento | Carpeta a comprimir. |
Se empaqueta y comprime toda la carpeta proyecto/ dentro de proyecto.zip.
Comprimir con máxima compresión
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | zip | Comando | Comando zip. |
| 2 | -9 | Opción | Usa nivel máximo de compresión. |
| 3 | -r | Opción | Incluye carpetas recursivamente. |
| 4 | datos.zip | Valor | Nombre del archivo zip. |
| 5 | datos/ | Argumento | Carpeta a comprimir. |
El archivo queda lo más comprimido posible; tarda un poco más que con compresión normal.
Excluir archivos .log
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | zip | Comando | Comando zip. |
| 2 | -r | Opción | Recursivo. |
| 3 | app.zip | Valor | Archivo zip de salida. |
| 4 | app/ | Argumento | Carpeta a comprimir. |
| 5 | -x | Opción | Excluye archivos que coincidan con el patrón. |
| 6 | "*.log" | Valor | Patrón para excluir todos los archivos .log (entre comillas para proteger *). |
Se crea app.zip sin incluir ningún archivo con extensión .log.
Actualizar un zip con archivos nuevos
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | zip | Comando | Comando zip. |
| 2 | -u | Opción | Actualiza: agrega o reemplaza solo lo necesario. |
| 3 | respaldo.zip | Valor | Archivo zip existente. |
| 4 | nuevo.txt | Argumento | Archivo a agregar o actualizar en el zip. |
Si respaldo.zip existe, se agrega nuevo.txt (o se actualiza si cambió). Si no existe, zip crea el archivo.
Opciones
Las que sí vas a usar| Opción | Qué hace |
|---|---|
| -r--recurse-paths | Incluye la carpeta y todo su contenido recursivamente. |
| -q--quiet | No muestra mensajes mientras comprime. |
| -v--verbose | Muestra información detallada del proceso. |
| -1 | Usa compresión rápida (menor compresión). |
| -9 | Usa máxima compresión (más lento). |
| -u--update | Solo agrega archivos nuevos o actualizados al zip existente. |
| -x--exclude | Excluye archivos o patrones (ej. "*.log"). |
| -m--move | Mueve archivos al .zip (los borra de origen tras comprimir). |
Fallas comunes
| Falla | Remedio |
|---|---|
| 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. |
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.