Introducción
ZIP es el formato de archivo de archivo más utilizado que admite la compresión de datos sin pérdida. Un archivo ZIP es un contenedor de datos que contiene uno o más archivos o directorios comprimidos.
En este tutorial, explicaremos cómo descomprimir (extraer) archivos en sistemas Linux a través de la línea de comandos usando el comando unzip
¿Qué es Unzip?
unzip
es una utilidad que le ayuda a enumerar, probar y extraer archivos ZIP comprimidos.
unzip
no está instalado de forma predeterminada en la mayoría de las distribuciones de Linux, pero puede instalarlo fácilmente utilizando el administrador de paquetes de su distribución.
Instalar descomprimir en Ubuntu y Debian
sudo apt install unzip
Instalar descomprimir en CentOS y Fedora
sudo yum install unzip
Cómo descomprimir un archivo ZIP
En su forma más simple, cuando se usa sin opciones, el unzip
extraerá todos los archivos del archivo ZIP especificado en el directorio actual.
unzip filename.zip
Para extraer un archivo ZIP en un directorio específico, el usuario debe tener permisos de escritura para ese directorio.
Los archivos ZIP no admiten información de propiedad de estilo Linux y todos los archivos extraídos serán propiedad del usuario que ejecuta el comando.
Por ejemplo, digamos que descargó el archivo ZIP de instalación de Wordpress. Para descomprimir este archivo en el directorio actual, simplemente ejecute el siguiente comando:
unzip latest.zip
Cómo ocultar la salida del comando descomprimir
De forma predeterminada, el unzip
imprime los nombres de todos los archivos que está extrayendo y un resumen cuando se completa la extracción.
Utilice la -q
para ocultar la impresión de estos mensajes.
unzip -q filename.zip
Cómo descomprimir un archivo ZIP en un directorio diferente
Para descomprimir un archivo ZIP en un directorio que no sea el actual, use la opción -d
unzip filename.zip -d /path/to/directory
Por ejemplo, para descomprimir el latest.zip
/var/www/
, use el siguiente comando:
sudo unzip latest.zip -d /var/www
En el comando anterior estamos usando sudo
porque en la mayoría de los casos el usuario con el que estamos conectados no tiene permisos de escritura en el /var/www
. Cuando los archivos ZIP se descomprimen usando sudo, los archivos y directorios extraídos serán propiedad del usuario root.
Cómo descomprimir un archivo ZIP protegido con contraseña
Para descomprimir un archivo protegido con contraseña, use la -P
seguida de la contraseña:
unzip -P PasswOrd filename.zip
Cómo excluir archivos al descomprimir un archivo ZIP
Si desea extraer todos los archivos menos uno de un archivo ZIP, use la opción -x
unzip filename.zip -x file-to-exclude
En el siguiente ejemplo, estamos extrayendo todos los archivos y directorios del archivo ZIP excepto el directorio .git
unzip filename.zip -x "*.git/*"
Cómo sobrescribir archivos existentes al usar Descomprimir
Digamos que ya ha descomprimido un archivo ZIP y está ejecutando el mismo comando nuevamente:
unzip latest.zip
De forma predeterminada, unzip
le preguntará si desea sobrescribir solo el archivo actual, sobrescribir todos los archivos, omitir la verificación del archivo actual, omitir la verificación de todos los archivos o cambiar el nombre del archivo actual.
Archive: latest.zip
replace wordpress/xmlrpc.php? [y]es, [n]o, [A]ll, [N]one, [r]ename:
Si desea sobrescribir archivos existentes sin preguntar, use la opción -o
unzip -o filename.zip
Utilice esta opción con precaución. Los archivos se sobrescribirán y, si realiza algún cambio en los archivos, los cambios se perderán.
Cómo descomprimir un archivo ZIP sin sobrescribir archivos existentes
Supongamos que ya descomprimió un archivo ZIP y realizó cambios en algunos archivos, pero los borró accidentalmente. Desea conservar los cambios y restaurar los archivos eliminados del archivo ZIP.
En este caso, usaría la -n
que obliga a unzip
para omitir la extracción de un archivo ya existente.
unzip -n filename.zip
Cómo descomprimir varios archivos ZIP
Si hay varios archivos ZIP en el directorio de trabajo actual, puede descomprimir todos los archivos con un solo comando:
unzip '*.zip'
Tenga en cuenta las comillas simples alrededor del *.zip
. Si olvidó mencionar el argumento, el shell expande el comodín y obtendrá un error.
Cómo enumerar el contenido de un archivo zip
Para enumerar el contenido de un archivo ZIP, use la opción -l
unzip -l filename.zip
En el siguiente ejemplo, enumeramos todos los archivos de instalación de WordPress:
unzip -l latest.zip
La salida se verá así:
Archive: latest.zip
Length Date Time Name
--------- ---------- ----- ----
0 2018-08-02 22:39 wordpress/3065 2016-08-31 18:31 wordpress/xmlrpc.php
364 2015-12-19 12:20 wordpress/wp-blog-header.php
7415 2018-03-18 17:13 wordpress/readme.html......
21323 2018-03-09 01:15 wordpress/wp-admin/themes.php
8353 2017-09-10 18:20 wordpress/wp-admin/options-reading.php
4620 2017-10-24 00:12 wordpress/wp-trackback.php
1889 2018-05-03 00:11 wordpress/wp-comments-post.php
--------- -------
27271400 1648 files
Conclusión
Hablamos sobre cómo descomprimir archivos en Linux, desde la línea de comandos.