Cómo usar el comando Zip en Linux para comprimir archivos y carpetas

El comando zip en Linux es probablemente la forma más simple e intuitiva de trabajar con archivos ZIP en la línea de comandos. Y no solo eso, el formato de archivo ZIP es universal: casi todos los sistemas operativos tienen un programa nativo que puede trabajar con él. Aquí están todas las formas en que puedes usar este comando en cualquier línea de comandos de Linux.
Tabla de Contenidos
- Cómo instalar Zip en Linux
- Comando Zip en Linux: Sintaxis y Opciones
- Cómo comprimir un archivo en Linux usando el comando Zip
- Cómo comprimir una carpeta en Linux usando el comando Zip
- Cómo descomprimir un archivo usando el comando Zip de Linux
- Cómo descomprimir una carpeta de Linux con Zip
- Preguntas Frecuentes
Cómo instalar Zip en Linux
La última versión del comando zip de Linux debería estar disponible en todos los principales gestores de paquetes.
Para Debian/Ubuntu:
sudo apt install zipPara Arch Linux:
sudo pacman -S zipPara Fedora:
sudo dnf install zipPara Gentoo
sudo emerge --ask zipNota: Antes de instalar cualquier cosa, asegúrate de actualizar primero tu gestor de paquetes para obtener la última versión del comando zip. Puedes aprender cómo hacer eso y más con nuestra hoja de trucos del gestor de paquetes de Linux.
Nota: Con zip instalado, el comando unzip también estará disponible ahora.
Comando Zip en Linux: Sintaxis y Opciones
Hay una sintaxis básica para el comando zip, y solo toma dos parámetros: el nombre del archivo ZIP de salida y el nombre del archivo de entrada.
zip [opciones] 
Sus posiciones son importantes aquí. Si los haces al revés, la computadora se preguntará por qué intentas hacer un “archivo-a-archivar.jpg” con un “archivo-zip.zip” que no existe y devolverá un error.
En cuanto a establecer las opciones, necesitarás trabajar con banderas. Hay 8 banderas que necesitarías regularmente para un uso normal:
-deliminar entradas archivadas seleccionadas en el archivo ZIP.-qrealizar la tarea en silencio sin imprimir nada en la terminal.-Tprobar la integridad del archivo ZIP.-ecifrar archivo.-uactualizar el archivo ZIP agregando nuevos archivos al archivo.-mmover archivo al archivo.-ragregar recursivamente archivos dentro de una carpeta a un archivo ZIP.-xexcluir archivos con los nombres de archivo seleccionados.-iincluir solo archivos con los nombres seleccionados.
Puedes colocar las banderas donde quieras, ya sea antes de la salida, después de la entrada, entre las dos; incluso puedes usar múltiples banderas esparcidas por toda la línea en cualquier orden. Solo asegúrate de escribirlas después de escribir zip.
La excepción son -x y -i, que necesitan una nueva entrada después de usarlas.
Cómo comprimir un archivo en Linux usando el comando Zip
La forma más fácil de archivar archivos con el comando zip es escribir zip seguido del nombre del archivo ZIP y luego el archivo que intentas archivar o comprimir. Las banderas son opcionales, así que puedes hacerlo así para comprimir rápidamente cualquier archivo en Linux.
zip archive.zip text_file.txt
También puedes agregar más archivos añadiendo los otros después del primer archivo que intentabas archivar. Y si alguno de estos tiene espacios en sus nombres, puedes encerrarlos entre comillas.
zip archive.zip "file 1.txt" "file 2.txt" "file 3.txt" "file 4.txt"
Usando la bandera -d
La bandera -d te permite eliminar un archivo archivado dentro del archivo ZIP de la misma manera en que lo habrías agregado a uno.
zip -d archive.zip remove_me.jpg
También puedes usarla para eliminar carpetas enteras dentro del archivo. Sin embargo, esto no funcionará para archivos fuera del archivo ZIP (así que no puedes usarlo para eliminar archivos después de archivar).
Usando la bandera -q
La bandera -q es para asegurarte de que zip no devolverá un mensaje cuando haga su trabajo.
zip -q archive.zip text_file.txt
Es útil cuando estás usando el comando zip con un script. Pero si estás usando esto por tu cuenta, es posible que desees evitar usar la bandera -q ya que no sabrás si el proceso de archivado fue exitoso sin verificar con el comando dir o ls.
Usando la bandera -T
Algunos archivos Algunos archivos ZIP pueden corromperse durante la descarga: sucede. Puedes usar la bandera -T para verificar la integridad, así sabrás si realmente es un archivo dañado o si simplemente estás ingresando la contraseña incorrecta.
zip -T archive.zip
Esto es bastante importante al descargar archivos grandes como imágenes de sistemas operativos. Para archivos como estos, puedes grabarlos con éxito en un USB en vivo y terminar con errores una vez que ejecutes el archivo de imagen en tu máquina. Lo mismo ocurre con videos y música que tienen partes cortadas en lugares aleatorios.
Usando la bandera -u
Si deseas agregar un nuevo archivo a un archivo ZIP existente, puedes usar la bandera -u.
zip -u archive.zip new_file.txt
También puedes agregar más archivos añadiéndolos después del primer archivo, como si estuvieras usando el comando zip normalmente para crear un nuevo archivo ZIP.
Usando la bandera -e
Si deseas agregar una contraseña, necesitas usar la bandera -e. Esta opción solo aplica la contraseña y el cifrado al archivo que agregas al archivo ZIP dentro de su comando, por lo que los archivos anteriores permanecerán sin cifrar si usas esto con la bandera -u.
zip -e archive.zip text_file.txt
Lo grandioso de los archivos ZIP es que el proceso de creación de la contraseña también agrega una capa adicional de protección además de dar acceso. Tu contraseña funciona como una firma digital que se utiliza para descifrar una capa de cifrado adicional agregada al archivo ZIP.
Usando la bandera -m
Por último, la bandera -m elimina el archivo original después de que se archiva en el archivo ZIP. Piensa en esto como automatizar un paso adicional para que no tengas que eliminarlo tú mismo.
zip -m archive.zip text_file.txt
Un detalle importante a recordar: la bandera -m elimina archivos de tal manera que hace imposible recuperarlos sin usar una herramienta de restauración de archivos. Así que asegúrate de mantener una copia de seguridad, o simplemente elimina las cosas manualmente usando el comando rm en su lugar.
Cómo comprimir una carpeta en Linux usando el comando Zip
Si usas el comando zip en una carpeta sin procesar, te quedarás con una carpeta que no contiene ningún archivo. Siempre que intentes comprimir una carpeta, necesitas usar la bandera -r.
Usando la bandera -r
La bandera -r, también conocida como recursiva, revisa cada contenido de una carpeta y sus subcarpetas y archiva cada uno en el archivo ZIP. También retendrá la estructura actual de cada subcarpeta.
zip -r archive.zip my_folder
Esto también funciona si deseas archivar todo dentro de la carpeta actual. Simplemente reemplaza my_folder con ./ y cambiará su objetivo a todo dentro de la actual.
zip -r archive.zip ./
Además, puedes usar esto junto con la bandera -u para incluir carpetas y su contenido en un archivo ZIP existente.
zip -r -u archive.zip another_folder
Usando la bandera -i
La bandera -i te permite seleccionar un archivo específico que deseas incluir y excluye todo lo demás dentro de una carpeta.
zip -r archive.zip my_folder -i my_folder/a_subfolder/file1.txt
Al usar * asteriscos con la bandera -i, puedes seleccionar archivos que compartan nombres similares pero que podrían terminar con algo como un número. Por ejemplo, escribir *.txt hará que el comando zip incluya todos los archivos TXT dentro de la carpeta.
zip -r archive.zip my_folder -i "*.txt"
Usando la bandera -x
La bandera -x te permite excluir solo ciertos archivos mientras comprimes una carpeta completa.
zip -r archive.zip my_folder -x my_folder/dont_zip.jpg
Además, la bandera -x anula la bandera -i cuando se usan juntas. De esta manera, puedes, por ejemplo, decirle a zip que incluya todos los demás archivos del mismo tipo excepto el archivo que no deseas que se comprima.
zip -r archive.zip my_folder -i "*.txt" -x my_folder/dont_zip.txt
Cómo descomprimir un archivo usando el comando Zip de Linux
El programa unzip es un programa asociado al programa zip predeterminado. Extrae archivos de tu archivo ZIP.
Para usar este programa, solo necesitas escribir unzip y el nombre del archivo del archivo ZIP.
unzip archive.zip
Al usar el comando unzip, descomprimirás el archivo ZIP dentro del directorio de trabajo actual, independientemente de dónde provenga el archivo ZIP.
Para extraer o descomprimir un archivo de Linux dentro de un archivo ZIP para que los demás permanezcan sin extraer, puedes agregar su nombre de archivo después de la parte donde escribes el archivo.
unzip archive.zip file.txt
Cómo descomprimir una carpeta de Linux con Zip
Mientras que unzip normalmente extraerá carpetas ubicadas dentro de un archivo ZIP, puede ser bastante difícil hacer que extraiga solo ciertas carpetas. Pero eso no significa que sea imposible.
unzip archive.zip my_folder/a_subfolder/*
Esa línea de código extrae todo dentro de a_subfolder.
Además, cuando descomprimes una carpeta, el programa unzip crea una nueva carpeta dentro del directorio de trabajo actual y descomprime sus carpetas allí. Si existe una carpeta con el mismo nombre (o una versión anterior de la carpeta está presente), pregunta si está bien reemplazar el archivo que actualmente está en la carpeta.
Preguntas Frecuentes
¿Qué hace el comando gzip en Linux?
El comando gzip de Linux es una herramienta que puedes usar para almacenar y comprimir archivos en un archivo GZ.
¿Es ZIP mejor que TAR?
De alguna manera, ZIP es mejor que TAR porque los archivos ZIP pueden comprimir, cifrar y proteger su contenido. Sin embargo, los archivos TAR están destinados a combinar archivos en un solo archivo para una transferencia de archivos más rápida, mientras que los archivos ZIP (a pesar de ser utilizados para el mismo propósito) vienen con esas características adicionales en mente.
¿Es TAR más rápido que ZIP?
Los archivos TAR no comprimen ni cifran su contenido. Así que si estás buscando una forma más rápida de combinar una gran cantidad de archivos en un solo archivo fácil de transferir, verás algunas mejoras con TAR en comparación con ZIP. Sin embargo, podrías encontrar más fácil transferir un archivo ZIP en lugar de un archivo TAR porque los archivos ZIP tienden a ser mucho más pequeños que los archivos TAR.
Crédito de la imagen: Unsplash, Capturas de pantalla de Terenz Jomar Dela Cruz