En este tutorial, le daré una guía completa y todas las opciones importantes enumeradas en "Cómo comprimir un archivo en Linux". Comprimir un archivo o directorio en Linux ayuda a realizar copias de seguridad y ahorrar espacio en disco al comprimir archivos no utilizados. Estoy usando Ubuntu Linux 20.04 para mostrar todos los ejemplos en esta publicación.
¿Qué es Zip?
Zip es básicamente una utilidad de empaquetado y compresión de archivos para casi todos los sistemas operativos, ya sea Linux, Windows, Mac e incluso algunos sistemas RISC.
Siempre está instalado en todos los sistemas Linux o Unix por defecto, excepto en algunos casos. Es análogo a una combinación de dos comandos tar y comprimir .
Generalmente, el programa zip coloca uno o más archivos comprimidos en Linux en un solo archivo zip junto con metainformación sobre el archivo.
La relación de compresión de los archivos zip en Linux es de alrededor de 2:1 o 3:1, lo que es común en los archivos de texto y varía según el tipo de archivo. Un solo comando zip puede poner una estructura de directorio completa en un archivo zip.
En caso de archivos grandes de más de 4 GB , zip usa automáticamente extensión zip64 . Zip es compatible con Pkzip y Pkunzip utilidades también.
Zip ahora también es compatible con la utilidad de compresión bzip2 si la biblioteca bzip2 generalmente se compila con zip.
Descomprimir y alquitrán son dos compañeros utilidades. Descomprima, descomprima o descomprima el archivo zip y tar se utiliza para realizar copias de seguridad.
Requisito previo de la utilidad Zip
No hay ningún requisito previo especial, lo único que debe hacer es comprobar si zip está instalado en Linux o no.
Ejecute este comando. instalará la utilidad para comprimir y descomprimir si no está allí. Si ya está instalado, se actualizará o no hará nada como se muestra en la salida.
$ sudo apt install zip unzip
Muestra utilidad para comprimir y descomprimir ya está en la versión más reciente. por lo que ha terminado con la instalación de zip y descomprimir hasta este punto y está listo para explorar el mundo de Comprimir archivos y carpetas en Linux.
Si tiene una distribución de Centos o Fedora . Ejecute los comandos mencionados a continuación para instalar zip y descomprimir
$ sudo yum install zip
$ sudo yum install unzip
Explicaré cómo comprimir archivos en Linux usando dos opciones
- Comprima un archivo en Linux utilizando la interfaz gráfica de usuario (GUI)
- Comprima un archivo en Linux usando la interfaz de línea de comandos (CLI)
Veamos la primera opción -
Cómo comprimir un archivo en la GUI de Linux
Paso 1:-
Vaya al directorio donde reside el archivo o las carpetas.
Paso 2:-
Seleccione los archivos y haga clic con el botón derecho; seleccione comprimir.
Paso 3:-
Dar nombre de archivo. Daré sample-zip como ejemplo.
Paso 4:-
¡¡Ya terminaste!!
Cómo comprimir un archivo en la terminal de Linux
Primero, eche un vistazo a la Sintaxis de zip con explicación -
$ zip options "output_file_name" "target_file" "target_folder"
donde
nombre_archivo_de_salida - el nombre del archivo de salida que desea dar. extensión de cremallera se agregará automáticamente.
archivo_destino o carpeta - es la ruta del archivo o carpeta que desea comprimir y puede tener comodines.
Veamos diferentes opciones y ejemplos de Zip programa uno por uno.
Ejemplo 1:- Cómo comprimir o comprimir archivos en Linux
dev@test:~$ zip test file1 file2
salida
agregando:archivo1 (desinflado 69%)
agregando:archivo2 (desinflado 69%)
dev@test:~$ ls test*
test.zip
dev@ prueba:~$
El nombre del archivo y el porcentaje de compresión se reflejan en la salida. Como puede ver, no he incluido .zip extensión, aún por comando predeterminado, agregue eso en el nombre del archivo de salida. En mi caso "test-zip.zip ".
si quieres suprimir esta salida del comando zip, puede usar la opción -q .
dev@test:~$ zip -q test file1 file2
Salida
dev@prueba:~$ ls -ltrh prueba*
-rw-r--r-- 1 dev dev 56K 18 de junio 16:30 test.zip
dev@test:~$
Puede darse el caso, si olvidó dar el nombre del archivo de salida en zip entonces, de forma predeterminada, elegirá el primer nombre de archivo como archivo de salida y el segundo archivo en zip . Entonces, el ejemplo mencionado a continuación también muestra cómo comprimir varios archivos en Linux.
dev@test:~$ zip file1 file2
Salida
agregando:file2 (desinflado 69%)
dev@test:~$ ls -l *.zip
-rw-r--r-- 1 dev dev 28519 18 de junio 16:33 archivo1.zip
Ejemplo 2:- Cómo comprimir carpetas y subcarpetas en Linux
Por lo general, debe crear archivo zip al directorio que contiene archivos y subdirectorios. Código postal opción -r será útil para recorrer esa estructura de directorios de forma recursiva.
dev@test:~$ zip -r test sample/
Salida
agregando:muestra/ (almacenado 0%)
agregando:muestra/archivo2 (desinflado 69%)
agregando:muestra/archivo1 (desinflado 69%)
dev@test:~ $ ls muestra*
prueba.zip
Niveles de compresión en la utilidad Zip
El predeterminado el nivel de compresión del archivo zip es -6 y tienes toda la libertad de elegir un número entre 0-9. si selecciona -0 entonces no habrá compresión, significa que no comprimir archivos en Unix.
si selecciona -9 obligará al programa zip a seleccionar la mejor compresión óptima para todos los archivos o carpetas.
Ejemplo 3:- Cómo usar los niveles de compresión 0 y 9
dev@test:~$ zip -r -0 test.zip sample/
Salida
agregando:muestra/(almacenado 0%)
agregando:muestra/archivo2 (almacenado 0%)
agregando:muestra/archivo1 (almacenado 0%)
muestra la salida, si selecciono 0 como nivel de compresión, no hay ninguna compresión durante comprimir los archivos o la carpeta .
Por ejemplo -
dev@test:~$ zip -r -9 test sample/
Salida
agregando:muestra/ (almacenado 0%)
agregando:muestra/archivo2 (desinflado 69%)
agregando:muestra/archivo1 (desinflado 69%)
dev@test:~ $
si Zip encuentra que el archivo no se puede comprimir, simplemente lo archiva y almacena tal como está sin comprimir el archivo en Linux.
He hablado de bzip2 también en mi introducción zip declaración. bzip2 también se instala por defecto en todas las versiones de Linux. Si desea comprimir el archivo usando el método bzip2, puede usar -Z.
Ejemplo 4:- Cómo comprimir un archivo en Linux usando la utilidad bzip2
dev@test:~$ zip -r -Z bzip2 test.zip sample/
Salida
agregando:muestra/ (almacenado 0%)
agregando:muestra/archivo2 (bcomprimido 74%)
agregando:muestra/archivo1 (bcomprimido 74%)
dev@ prueba:~$ ls prueba.zip
prueba.zip
Si compara la salida, la relación de compresión aumentó para los mismos archivos del 69 % al 74 % con bzip2.
Por lo tanto, comprimir archivos puede resultar en más ahorro de espacio pero cambiar el nivel de compresión o usar bzip2 para ahorrar más espacio conlleva una penalización de los recursos de la CPU y llevará más tiempo comprimir en caso de una gran cantidad de archivos en Linux.
Pero definitivamente ahorrará recursos de red si planea transferirlo o enviarlo por Internet.
Comprimir y cifrar un archivo en Linux
Muchas veces necesita almacenar o necesita enviar/transferir un archivo a alguien y puede contener datos confidenciales o personales.
Para evitar el uso indebido de este archivo, siempre puede cifrar o habilitar la contraseña en el archivo de almacenamiento usando -e opción .
Ejemplo 5:- Cómo habilitar la contraseña en el archivo zip en Linux
dev@test:~$ zip -e test.zip sample/
Salida solicitando contraseña
Ingrese la contraseña:
Verifique la contraseña:
agregando:muestra/ (almacenado 0%)
dev@test:~$ ls muestra
muestra/ prueba.zip
No olvides compartir la contraseña con el destinatario, si se la vas a enviar a alguien 🙂
Cree un archivo zip dividido en Linux
Puede haber un caso en el que tenga un archivo grande para archivar y necesite dividirlo debido a los límites de almacenamiento o carga en el sitio FTP o el proveedor de alojamiento de archivos.
Puede crear un archivo zip usando la opción -s con tamaño proporcionado. El multiplicador se puede configurar como k(kilobytes), m(Megabytes), t(Terabytes).
Ejemplo 6:- Cómo crear un archivo zip dividido en Linux
Tengo un archivo zip de imagen ISO de Ubuntu 20.04 con el nombre ubuntu.zip (2.5G) y lo dividiré en archivo 1g archivos.
dev@test:~/sample$ ls -ltrh ubuntu.zip -rw-r--r-- 1 dev dev 2.5G Jun 18 17:51 ubuntu.zip
dev@test:~/sample$ zip -s 1g ubuntu.zip --out split copying: ubuntu-20.04-desktop-amd64.iso dev@test:~/sample$
Salida
dev@test:~/sample$ ls -ltrh split*
-rw-r--r-- 1 dev dev 1.0G 18 de junio 18:03 split.z02
-rw-r--r-- 1 dev dev 504M 18 de junio 18:04 split.zip
-rw-r--r-- 1 dev dev 1.0G 18 de junio 18:04 split.z01
Eche un vistazo a split.zip, split.z01 y split.z02
Ahora, cuando haya dividido el archivo usando zip y estará pensando en unirlo en el objetivo. No te preocupes, no dejaré que te rasques la cabeza.
Ejemplo 7:- Cómo agregar o combinar un archivo zip dividido en Linux
Vaya al directorio donde guardó los archivos divididos
dev@test:~/sample$ ls -ltrh split*
Salida
-rw-r--r-- 1 dev dev 1.0G 18 de junio 18:03 split.z02
-rw-r--r-- 1 dev dev 504M 18 de junio 18:04 split. zip
-rw-r--r-- 1 dev dev 1.0G 18 de junio 18:04 split.z01
Únete ahora a archivos zip divididos.
dev@test:~/sample$ cat split.z* > join.zip
Validar el tamaño en la salida
dev@test:~/sample$ ls -ltrh join.zip
-rw-r--r-- 1 dev dev 2.5G 18 de junio 18:13 join.zip
Ejemplo 8:- Cómo actualizar un archivo zip en Linux
supongamos que olvidó agregar un archivo en un zip o desea agregar más archivos al zip existente, entonces -u opción puede ayudar. En este ejemplo, agregaré file4 al test.zip existente archivo.
dev@test:~$ zip -u test.zip file4
Salida
agregando:file4 (desinflado 69%)
Ejemplo 9:- Cómo excluir un archivo de un archivo zip en Linux
Un escenario en el que tiene muchos archivos en un directorio y desea excluir algunos archivos del archivado zip. Opción -x es el salvador aquí.
Actualmente, tengo tres archivos en el directorio de muestra
dev@test:~$ ls -ltrh sample/
total 264K
-rw-r--r-- 1 dev dev 88K 17 de junio 21:51 file1
-rw-r--r-- 1 dev dev 88K 17 de junio 23:21 file2
-rw-r--r-- 1 dev dev 88K 18 de junio 18:20 file3
excluyamos file3 , solo 2 archivos archivados.
dev@test:~/sample$ zip test.zip * -x file3
Salida
agregando:archivo1 (69% reducido)
agregando:archivo2 (69% reducido)
dev@test:~/sample$
Ejemplo 10:- Modo detallado al comprimir archivos en Linux
si quieres ver el progreso, opción -v conocida como información detallada o de versión de diagnóstico, puede ser útil, especialmente cuando se trabaja con una gran cantidad de archivos.
dev@test:~$ zip -v -r test.zip sample/
Salida
agregando:muestra/ (entrada=0) (salida=0) (almacenado 0%)
agregando:muestra/archivo3 (entrada=90082) (salida=28359) (desinflado 69%)
añadiendo:muestra/archivo2 (entrada=90082) (salida=28359) (desinflado 69%)
añadiendo:muestra/archivo1 (entrada=90082) (salida=28359) (desinflado 69%)
total bytes=270246, comprimido=85077 -> 69 % de ahorro
dev@test:~$
Ejemplo 11:- Trabajar con comodines para comprimir archivos en Linux
El comodín más utilizado es un asterisco (*) en este mundo, en mi opinión, la utilidad Zip admite este útil carácter comodín. No es necesario escribir todos y cada uno de los nombres de archivo.
dev@test:~/sample$ zip file.zip file*
Salida
agregando:archivo1 (69% desinflado)
agregando:archivo2 (69% desinflado)
agregando:archivo3 (69% desinflado%)
dev@test:~/sample$
Algunos problemas comunes y códigos de error durante la compresión en Linux
Estado salida
2 final inesperado del archivo zip en Unix .
11 error de lectura o búsqueda, No se puede leer el archivo
12 zip no tiene nada que ver, Falta alguna acción
13 archivo zip faltante o vacío
14 error al escribir en un archivo