Comando zip en Linux: cómo comprimir archivos y carpetas

comando-zip
comando-zip

zip crea archivos ZIP y comprime sus elementos, uno por uno. Se utiliza para entregar varios archivos en un paquete compatible con herramientas habituales de Linux, Windows y macOS. A diferencia de tar, no necesitas añadir otro compresor para obtener un ZIP comprimido.

Una carpeta no se incluye de forma recursiva si indicas solo su nombre: para empaquetar todo su contenido necesitas -r. También conviene revisar qué rutas entran en el archivo, porque la opción recursiva puede incluir archivos ocultos, configuraciones y datos que no quieras compartir.

👉 Y recuerda, si quieres aprender más de Linux, visita el curso de Linux gratis.

🐳 Si quieres aprender más de Docker, visita el curso de Docker gratis.

Sintaxis básica del comando zip

La sintaxis identifica primero el archivo de destino y después uno o varios archivos o directorios de origen:

zip [OPCIONES] ARCHIVO.zip RUTAS...

Explicación de la sintaxis

zip es el programa. OPCIONES cambia cómo se recorre, actualiza o protege el paquete. ARCHIVO.zip es el archivo que se crea o actualiza. RUTAS son los elementos que se añadirán; pueden ser nombres de archivo, directorios o patrones que resuelva el shell.

Si el archivo de destino ya existe, zip puede actualizar sus entradas con los archivos indicados. No supone que el contenido del archivo vaya a quedar como un espejo exacto del directorio: por ejemplo, actualizar el ZIP no elimina automáticamente entradas que ya no existan en el origen.

Opciones habituales de zip

OpciónFunciónCuándo usarla
-rRecorre directorios de forma recursiva.Necesaria para incluir todos los archivos de una carpeta.
-uAñade archivos nuevos y actualiza entradas si el archivo local es más reciente.Actualizar un ZIP existente sin recrearlo desde cero.
-x PATRÓNExcluye rutas que coinciden con un patrón.Omitir cachés, dependencias o archivos de configuración.
-jGuarda los archivos sin sus rutas de directorio.Crear un paquete plano; revisa que no haya nombres repetidos.
-eSolicita una contraseña y cifra las entradas.Solo para casos no sensibles: el cifrado estándar es débil.
-TComprueba la integridad del ZIP recién creado.Verificar el paquete al generarlo.
-0 / -9No comprime o busca una compresión mayor.Ajustar velocidad/tamaño; archivos ya comprimidos suelen reducir poco.

Comprimir archivos concretos

Indica los archivos que quieres guardar. El ZIP contendrá las rutas indicadas y el original permanecerá en su sitio:

zip documentos.zip contrato.pdf informe.txt
unzip -l documentos.zip

La primera orden crea el paquete; la segunda muestra sus entradas para comprobar que contiene los nombres esperados. Si zip o unzip no están instalados, instala los paquetes correspondientes de tu distribución.

Comprimir una carpeta completa

Añade -r para incluir los archivos de todos sus subdirectorios. La ruta superior también aparecerá dentro del archivo:

zip -r proyecto.zip proyecto/

La recursión incluye archivos ocultos. Si quieres empaquetar el contenido sin conservar la carpeta superior, ejecuta la orden desde esa carpeta y guarda el ZIP en el directorio padre:

(cd proyecto && zip -r ../proyecto.zip .)

Excluir secretos, dependencias y archivos temporales

Antes de compartir un paquete recursivo, excluye rutas que no deben viajar con el proyecto. Pon los patrones entre comillas para que los interprete zip y no el shell:

zip -r proyecto.zip proyecto/ \
  -x '*/.git/*' '*/.env' '*/node_modules/*' '*.log'

Revisa la lista final con unzip -l. Comprueba especialmente que no entren claves, tokens, copias locales de bases de datos, dependencias descargables o archivos temporales. La exclusión de archivos no sustituye la revisión manual cuando el paquete contiene información privada.

Verificar y extraer un archivo ZIP

Si recibes un archivo de otra persona o sistema, inspecciona sus rutas y prueba su integridad antes de extraerlo. Elige un destino separado para no sobrescribir por accidente archivos del directorio actual:

unzip -l proyecto.zip
unzip -t proyecto.zip
mkdir -p /tmp/proyecto-extraido
unzip proyecto.zip -d /tmp/proyecto-extraido

-l lista las entradas, -t comprueba que los datos del archivo se pueden leer y -d indica dónde extraerlos. Un test correcto no demuestra que el archivo sea seguro: revisa rutas y contenido antes de ejecutarlo o abrir documentos desconocidos.

Actualizar un ZIP existente

La opción -u añade archivos nuevos y reemplaza entradas cuando la versión del disco es más reciente. No borra las entradas que ya no estén en la carpeta de origen:

zip -u respaldo.zip configuracion.yml
unzip -l respaldo.zip

Si necesitas que el archivo refleje exactamente el estado actual de un directorio, no confundas -u con una sincronización completa. Las opciones de sincronización pueden borrar entradas del ZIP; conserva una copia y consulta el manual antes de usarlas.

Contraseñas y seguridad del ZIP

La opción -e solicita una contraseña en la terminal, evitando escribirla directamente en la línea de comandos. Sin embargo, el cifrado tradicional que ofrece zip se considera débil y no es apropiado para proteger información sensible. No uses el indicador de contraseña en claro ni confíes en un ZIP cifrado con el método estándar para secretos, documentos críticos o copias sensibles.

Si el archivo necesita protección real, utiliza una herramienta de cifrado moderna y comparte la clave por un canal distinto. Además, recuerda que una contraseña no oculta los nombres de archivo que se ven al listar algunos ZIP.

Errores frecuentes al usar zip

  • La carpeta aparece vacía: faltaba -r para recorrer sus subdirectorios.
  • El paquete contiene archivos privados: la recursión puede incluir archivos ocultos; inspecciona la lista y excluye rutas que no deban compartirse.
  • El ZIP antiguo conserva archivos borrados del proyecto: -u añade o actualiza entradas, pero no sincroniza eliminaciones.
  • El archivo no reduce su tamaño: PDF, JPEG, MP4 y otros formatos ya comprimidos pueden encogerse poco o nada.
  • Se usa -e para proteger secretos: el cifrado ZIP estándar es débil; elige una herramienta moderna cuando la confidencialidad importe.

Comandos relacionados

  • unzip, para listar y extraer archivos ZIP.
  • tar, para agrupar archivos y, si hace falta, combinarlos con compresión.
  • gzip y gunzip, para comprimir o descomprimir archivos individuales.

Referencias

Consulta el manual de zip en Debian para confirmar las opciones disponibles en tu versión. La FAQ de Info-ZIP explica la limitación del cifrado tradicional.

Vídeo: comprimir archivos ZIP

El siguiente Short muestra un ejemplo breve de compresión con ZIP. Para trabajar con carpetas o excluir archivos, aplica las opciones explicadas arriba y verifica después el contenido del paquete:

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *