Zip es el formato de archivo más utilizado que soporta la compresión de datos sin pérdidas.
Un archivo Zip es un contenedor de datos que contiene uno o más archivos o directorios comprimidos. Los archivos comprimidos (zip) ocupan menos espacio en el disco pueden ser transferidos de una a otra máquina más rápidamente que los archivos sin comprimir. Los archivos Zip se pueden extraer fácilmente en Windows, macOS y Linux utilizando las utilidades disponibles para todos los sistemas operativos.
En este tutorial, le mostraremos cómo comprimir (comprimir) archivos y directorios en Linux utilizando el comando zip
.
Comando zip #
zip
es una utilidad de línea de comandos que le ayuda a crear archivos Zip.
El comando zip tiene la siguiente forma sintáctica:
zip OPTIONS ARCHIVE_NAME FILES
Para crear un archivo Zip en un directorio específico, el usuario debe tener permisos de escritura en ese directorio.
Los archivos Zip no admiten información de propiedad al estilo de Linux. Los archivos extraídos son propiedad del usuario que ejecuta el comando.
Para preservar la propiedad y los permisos de los archivos utilice el comando tar
.
La utilidad zip
no está instalada por defecto en la mayoría de las distribuciones de Linux, pero puede instalarla fácilmente utilizando el gestor de paquetes de su distribución.
Instalación de Zip en Ubuntu y Debian #
sudo apt install zip
Instalación de Zip en CentOS y Fedora #
sudo yum install zip
Cómo comprimir archivos y directorios #
Para comprimir uno o más archivos, especifique los archivos que desea añadir al archivo separados por espacios como se muestra a continuación:
zip archivename.zip filename1 filename2 filename3
adding: filename1 (deflated 63%)adding: filename2 (stored 0%)adding: filename3 (deflated 38%)
Por defecto el comando zip
imprime los nombres de los ficheros añadidos al archivo y el método de compresión. Explicaremos los métodos y el nivel de compresión más adelante en esta guía.
Cuando se especifica el nombre del archivo Zip si se omite la extensión .zip
se añadirá automáticamente a menos que el nombre del archivo contenga un punto. zip archivename.zip filename
Creará un archivo con el mismo nombre que zip archivename filename
.
Para suprimir la salida del comando zip
, utilice la opción -q
:
zip -q archivename.zip filename1 filename2 filename3
A menudo, creará un archivo Zip de un directorio incluyendo el contenido de los subdirectorios. La opción -r
le permite recorrer toda la estructura de directorios de forma recursiva.
Para crear un archivo Zip de un directorio utilizaría:
zip -r archivename.zip directory_name
También puede añadir varios archivos y directorios en el mismo archivo:
zip -r archivename.zip directory_name1 directory_name2 file1 file1
Métodos y niveles de compresión #
El método de compresión por defecto de Zip es deflate. Si la utilidad zip determina que un archivo no puede ser comprimido, simplemente lo almacena en el archivo sin comprimirlo usando el método store. En la mayoría de las distribuciones de Linux la utilidad zip también soporta el método de compresión bzip2.
Para especificar un método de compresión, utilice la opción -Z
.
zip -r -Z bzip2 archivename.zip directory_name
...adding: sub_dir/ (stored 0%)adding: sub_dir/file1 (bzipped 52%)adding: sub_dir/file2 (bzipped 79%)
El comando zip
permite especificar un nivel de compresión utilizando un número prefijado con un guión del 0 al 9. El nivel de compresión por defecto es -6
. Si se utiliza -0
, todos los archivos se almacenarán sin compresión. -9
forzará al comando zip
a utilizar una compresión óptima para todos los archivos.
Por ejemplo, para utilizar el nivel de compresión -9
, se escribiría algo así:
zip -9 -r archivename.zip directory_name
Cuanto más alto sea el nivel de compresión, más intensivo será el proceso de compresión de la CPU, y tardará más tiempo en completarse.
Crear un archivo ZIP protegido con contraseña #
Si tiene información sensible que necesita ser almacenada en el archivo, puede cifrarla utilizando la opción -e
:
zip -e archivename.zip directory_name
Se le pedirá que introduzca y verifique la contraseña del archivo:
Enter password:Verify password:
Crear archivo Zip dividido #
Imagina que quieres almacenar el archivo Zip en un servicio de alojamiento de archivos que tiene un límite de carga de tamaño de archivo de 1GB y tu archivo Zip es de 5GB.
zip -s 1g -r archivename.zip directory_name
El comando anterior seguirá creando nuevos archivos en un conjunto después de que alcance el límite de tamaño especificado.
archivename.ziparchivename.z01archivename.z02archivename.z03archivename.z04
Ejemplos de Zip #
Cree un archivo Zip llamado archivename.zip que contenga todos los archivos del directorio actual.
zip archivename *
Igual que el anterior, incluyendo los archivos ocultos (los que empiezan por un punto):
zip archivename .* *
Crear un archivo Zip llamado archivename.zip
que contenga todos los archivos MP3 del directorio actual sin comprimirlos.
zip -0 archivename *.mp3
Conclusión #
En Linux se pueden crear archivos Zip con el comando zip
.
Para extraer un archivo ZIP en un sistema Linux, se puede utilizar el comando unzip.
Si quiere aprender más sobre Zip visite la página Zip Man.