Cómo usar el comando Unzip de Linux

Para descomprimir, los usuarios de Linux pueden aplicar un comando de utilidad similar al de otros formatos de compresión, como tar y gzip

Entender cómo utilizar el comando unzip de Linux ayuda a mejorar la eficacia en diversas tareas, como la distribución de software o el archivado de datos.

A diferencia de las dos utilidades, unzip no se instala por defecto. También tiene distintas opciones para cambiar el comportamiento de extracción y es adecuado para un escenario de desarrollo concreto.

En este artículo te explicamos cómo instalar y utilizar unzip para extraer archivos zip en un servidor privado virtual (VPS) con Linux. También hablaremos de en qué se diferencia de otros comandos de descompresión y de sus mejores prácticas.

Cómo instalar Unzip 

En esta sección, repasaremos los pasos para instalar unzip en distribuciones populares de Linux como Debian y CentOS. Para ejecutar los comandos de forma remota, conéctate a tu VPS utilizando un cliente SSH como PuTTY.

Derivados de Debian

Para los sistemas operativos basados en Debian, como Ubuntu, utiliza el gestor de paquetes APT para instalar unzip en Linux. Antes de hacerlo, actualiza y mejora el repositorio con el siguiente comando:

sudo apt update && sudo apt upgrade

Luego, instala unzip usando esto:

sudo apt install unzip

Si utilizas un sistema operativo más antiguo, aplica en su lugar el siguiente comando:

sudo apt-get install unzip

Derivados de Red Hat Linux Enterprise (RHEL)

Los comandos para los sistemas operativos basados en RHEL como CentOS, AlmaLinux y Rocky Linux difieren según su versión. Las versiones más antiguas utilizan el gestor de paquetes yum, mientras que las más recientes utilizan dnf.

Lee su documentación o utiliza sitios web como DistroWatch para comprobar el gestor de paquetes de tu sistema operativo. Dicho esto, los comandos son similares:

sudo yum update && sudo yum upgrade
sudo dnf update && sudo dnf upgrade

Asimismo, los comandos de instalación de la utilidad unzip son los siguientes:

sudo yum install unzip
sudo dnf install unzip

Una vez finalizado el proceso, comprueba si unzip se ha instalado correctamente utilizando el siguiente comando. Es el mismo para todas las distribuciones:

unzip -v

Si la utilidad está configurada correctamente, tu interfaz de línea de comandos debería mostrar el número de versión.

Terminal muestra la versión de unzip instalada

Cómo comprimir y descomprimir archivos en Linux

Una vez instalada la utilidad unzip, puedes empezar a extraer archivos en el sistema Linux. En esta sección, explicaremos cómo utilizar la herramienta para varios casos de uso comunes.

¡Importante! La configuración del límite de tamaño del sistema de archivos puede provocar un error al descomprimir un archivo en Linux. Si te encuentras con este problema, aumenta el límite en consecuencia.

Cómo descomprimir un archivo

Para descomprimir un archivo en Linux, utiliza el comando con el nombre del elemento que quieras descomprimir. Recuerda que el archivo también debe estar en tu directorio actual. Aquí tienes un ejemplo:

unzip archive_file.zip

Así extraeras el contenido del archivo ZIP en el directorio de trabajo actual si tienes permisos de lectura-escritura.

Extracción el contenido del archivo ZIP

También puedes descomprimir archivos zip en un directorio diferente especificando la ruta como en el siguiente comando:

unzip path/to/the/archive_file.zip
Descomprimir archivos desde otro lugar

Cómo descomprimir varios archivos

Para extraer simultáneamente varios archivos zip en la misma carpeta, utiliza un comodín como el siguiente:

unzip \*.zip
Unzip multiples archivos

El símbolo asterisco (*) representa cualquier carácter. Por ejemplo, ejecuta lo siguiente para descomprimir archivos comprimidos con nombres similares, como file-1.zip, file-2.zip, etc:

unzip file-\*.zip

Cuando extraigas varios archivos ZIP utilizando un comodín, asegúrate de utilizar el carácter de escape de la barra invertida (\) para evitar que Terminal descomprima un archivo de otro.

Cómo extraer archivos a un directorio específico

En lugar de utilizar el comando cd, utiliza la opción -d para descomprimir en una carpeta de otra ubicación. Por ejemplo:

unzip archive_file.zip -d /target/folder/destination
Extrayendo archivos a un directorio específico

El destino puede ser absoluto o relativo al directorio de trabajo actual. Por ejemplo, si estás en el directorio /target, introduce lo siguiente para extraer el archivo comprimido al mismo destino:

unzip archive_file.zip -d /directory/destination

Este comando también te permite descomprimir un archivo de una ubicación a otra ruta de directorio sin moverte a ninguna de ellas. El comando tiene el siguiente aspecto:

unzip /origin/path/archive_file.zip -d /target/folder/destination

Cómo hacer una extracción parcial de archivos o carpetas específicos

Un archivo ZIP suele estar formado por varios archivos o carpetas. En Linux, puedes elegir extraer un elemento específico especificando sus nombres después del archivo ZIP como:

unzip file_archive.zip file1.txt
Extracción parcial de archivos o carpetas específicos

Para descomprimir varios archivos, simplemente enumera sus nombres después del comando. También puedes extraer una carpeta concreta:

unzip file_archive.zip folder_name

Sin embargo, si quieres descomprimir una carpeta o archivo concreto dentro de un directorio, especifica la ruta completa. Por ejemplo, para extraer /path dentro de la carpeta /directory, introduce:

unzip file_archive.zip /directory/path

También puedes excluir determinados archivos de la extracción utilizando la opción -x. Por ejemplo, mantendremos archivados archive_1.txt y archive_2.txt utilizando este comando:

unzip file_archive.zip -x archive_1.txt archive_2.txt

Los administradores del servidor suelen excluir archivos si el archivo tiene mucho contenido. También lo hacen para actualizar parcialmente un elemento concreto, con lo que el proceso es más eficaz al no tener que trabajar con muchos datos.

Cómo descomprimir un archivo Zip protegido con contraseña

Si descomprimes un archivo zip en linux protegido por contraseña sin introducir la clave de identificación, Terminal te pedirá la credencial.

Descomprimir un archivo Zip protegido con contraseña

Puedes escribir la contraseña manualmente y pulsar Intro. Sin embargo, el comando unzip de Linux te permite introducir las credenciales directamente mediante la opción -p:

unzip -p password file_archive.zip

Hace que el proceso de extracción sea más eficaz. Sin embargo, te aconsejamos que evites este método cuando varios usuarios trabajen en el mismo sistema, ya que expondrá credenciales sensibles en los registros de comandos.

La opción -p es útil si utilizas el comando unzip en scripts de automatización. Te permite extraer un archivo ZIP protegido por contraseña pasando las credenciales automáticamente en lugar de introducirlas a través de la línea de comandos.

Cómo utilizar Unzip en scripts de automatización

Los administradores de servidores suelen exportar los productos de procesos como las copias de seguridad o el registro de eventos como archivos ZIP para ahorrar espacio de almacenamiento. Deben descomprimir estos archivos para extraer los datos con otros fines.

Por ejemplo, extraer un registro ZIP te permite leer el historial de eventos o pasarlo a otro comando para filtrar los datos. En lugar de ejecutar unzip para cada archivo, utiliza un script de automatización para ejecutar el mismo comando en una sola ejecución.

Para crear uno, utiliza un editor de texto como Nano. Introduce el nombre con .sh como extensión de archivo, como en el siguiente ejemplo:

sudo nano unzip_log.sh

Introduce el comando dentro del archivo. Por ejemplo, el siguiente script descomprimirá un nuevo archivo de registro en una carpeta y eliminará automáticamente los más antiguos cuando superen un número determinado:

#!/bin/bash
#Log archive files location
log_archive="/path/to/logs/log_archive.zip"

#Destination for extracted files
log_destination="/path/to/extracted/logs/"

#Maximum number of log files to keep
max_logs=5

#Use the unzip command to extract files
unzip "$log_archive" -d "$log_destination"

#Log rotation
cd "$log_destination" || exit

# List and sort log files
log_files=($(ls -1t *.log))

# Check if log rotation is needed
if [ ${#log_files[@]} -gt $max_logs ]; then

# Delete files and keep the recent ones
excess_logs=$(( ${#log_files[@]} - max_logs ))
for ((i = 0; i < excess_logs; i++)); do
rm "${log_files[$i]}"
done
fi

Pulsa Ctrl + X, Y e Intro para guardar los cambios. Ejecuta posteriormente estos comandos para hacer ejecutable el script y ejecutarlo:

sudo chmod +x unzip_log.sh
./unzip_log.sh

Actualmente, el comando extrae el registro sólo cuando lo ejecutas. Para ejecutarlo regularmente, establece un horario utilizando un cronjob. Por ejemplo, lo siguiente aplicará el script diariamente a las 2 AM:

0 2 * * * /path/to/unzip_log.sh

Cómo combinar Unzip con otros comandos de Linux

Linux te permite combinar varias utilidades para completar una tarea específica en una sola ejecución. Esto hace que la administración del servidor sea más eficiente, ya que no necesitas ejecutar los comandos individualmente.

Por ejemplo, combina el comando unzip con find para localizar varios archivos y extraerlos simultáneamente. Aquí tienes un ejemplo:

find /path/to/zips -type f -name "*.zip" -exec unzip {} -d /path/to/destination/ \;

En el fragmento, el comando find localiza archivos ZIP en el directorio /ruta/a/zips. A continuación, pasa los elementos recuperados al comando unzip, que representan las llaves.

Comandos find y unzip combinados

También puedes añadir el comando grep para descomprimir archivos que contengan un patrón determinado. Considera el siguiente ejemplo:

unzip archive.zip $(unzip -l archive.zip | grep "pattern" | awk '{print $4}')

En el comando, especificamos los elementos a extraer de archive.zip dentro de los paréntesis. La opción -l lista todo el contenido del archivo ZIP, que grep filtrará basándose en el patrón dado.

A continuación, la tubería (|) pasa los elementos que contienen el patrón al comando awk, extrayendo la cuarta columna que contiene el nombre del archivo.

Puedes incorporar unzip con otras utilidades específicas para tus tareas. Lee nuestro artículo de comandos de Linux y consulta su documentación en el sitio web de GNU para saber más sobre las posibles combinaciones.

Comparación del comando Unzip con métodos alternativos

En Linux existen otros formatos de archivo y compresión, como tar y tar.gz. El comando tar te permite crear un archivo sin reducir el tamaño del fichero, mientras que gzip permite la compresión.

A diferencia del comando zip, estas dos utilidades no admiten la protección mediante contraseña por defecto y pueden ser incompatibles con sistemas operativos que no sean UNIX, como Windows.

Dicho esto, estas compresiones son más habituales en los sistemas Linux, ya que están preinstaladas y la mayoría de los paquetes de instalación vienen en un archivo tar.gz o tar. Además, estas utilidades ofrecen más modularidad y flexibilidad.

Para descomprimir un archivo tar.gz o tar, utiliza los siguientes comandos:

tar -x archive.tar
gunzip archive.tar.gz

Para las distribuciones Linux de escritorio, también puedes utilizar un visor y extractor de archivos ZIP con una interfaz gráfica de usuario como PeaZip

Es más sencillo que la interfaz de línea de comandos, pero puede resultar ineficaz, ya que no puedes combinar utilidades ni utilizar la automatización de scripts.

Buenas prácticas para gestionar archivos Zip en Linux

En esta sección, explicaremos cómo gestionar archivos ZIP de forma segura y eficaz en un sistema Linux.

Comprueba la integridad de los archivos comprimidos

Los ciberdelincuentes suelen inyectar un archivo ZIP con código malicioso o malware. Dado que un archivo ZIP se compone de varios elementos, los usuarios no suelen notar rarezas ni siquiera después de descomprimir los archivos comprimidos.

Para evitar el riesgo de seguridad, lista el contenido de un archivo ZIP antes de descomprimirlo utilizando la opción -l:

unzip -l downloaded_file.zip

Además, asegúrate de que la suma de comprobación del archivo coincide con la de la fuente de descarga para garantizar su integridad. Para ello, ejecuta: 

md5sum downloaded_file.zip
Terminal mostrando la integridad de los archivos descargados

Utiliza también la opción -t para comprobar la coherencia estructural del archivo:

uzip -t downloaded_file.zip

Conserva los archivos y permisos existentes

La extracción puede sobrescribir archivos existentes con el mismo nombre en el destino, lo que provocaría una pérdida de datos. Utiliza la opción -n para forzar a unzip a omitir los elementos ya presentes:

unzip -n archive.zip

No necesitas confirmar la extracción del archivo ZIP si ya existe el mismo elemento en la carpeta de destino, ya que unzip los omitirá automáticamente.

Además de sobrescribirse, los permisos de los archivos o carpetas pueden diferir de los del archivo ZIP original tras la extracción.

Aunque puedes cambiar los permisos de los archivos manualmente utilizando chmod, resulta ineficaz si extraes muchos archivos de un fichero ZIP. Para conservar estas propiedades, utiliza la opción -o:

unzip -o archive.zip

Aprovecha el Asistente con IA del VPS de Hostinger

Para los principiantes en VPS, utilizar la interfaz de línea de comandos para descomprimir archivos en Linux puede resultar difícil debido a la falta de interfaz gráfica de usuario. 

Además, escribir scripts de automatización o comandos específicos para tareas concretas es complicado.

Con el alojamiento VPS de Hostinger, puedes utilizar nuestro Asistente con IA para generar fácilmente comandos unzip y scripts bash mediante sencillas instrucciones. Luego pueden copiar y pegar la salida para ahorrar tiempo y esfuerzo.

Asistente con IA de Hostinger

Por ejemplo, introduce «Genera un comando unzip de Linux para extraer archivos que contengan el patrón «log» del fichero archivo.zip dentro de /inicio/log_extract» o «Escribe un script bash que descomprima automáticamente un registro archivado sin sobrescribir los archivos existentes».

Para acceder a la herramienta, haz clic en VPS en el menú superior de hPanel y selecciona Administrar en tu plan. Navega hasta la barra lateral → Asistente con IA.

Conclusión

Al igual que tar y gunzip, el comando unzip te permite extraer un archivo comprimido en Linux. Sin embargo, debes instalarlo manualmente mediante un gestor de paquetes como APT para Debian o DNF para derivados de RHEL como CentOS.

Para descomprimir archivos, escribe sus nombres después del comando. Por defecto, extraerá el contenido en tu carpeta actual, pero puedes especificar un directorio diferente utilizando la opción -d

Además, descomprime elementos concretos escribiendo sus nombres después del archivo.

Puedes utilizar el comando unzip para una tarea específica, integrándolo en un script bash o combinándolo con otras utilidades. 

Antes de extraer, utiliza la opción -n para asegurarte de que no sobrescribes los archivos existentes y comprueba el contenido de un archivo ZIP utilizando -l para minimizar los riesgos de seguridad.

Con Hostinger, puedes simplemente preguntar y nuestro Asistente con IA del VPS generará comandos o scripts unzip para tareas específicas. Sólo tienes que introducir las instrucciones, copiar y pegar el resultado en tu Terminal.

Esperamos que esta información te haya sido de utilidad. Si tienes comentarios o preguntas, escríbelas en la sección de abajo. 

Author
El autor

Deyimar A.

Deyi es una entusiasta del marketing digital, con experiencia en diseño de páginas web, creación de contenido, copywrite y SEO. Forma parte del equipo de SEO & Localization de Hostinger. En su tiempo libre, le gusta desarrollar proyectos, leer un libro o ver una buena película.