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.
Tabla de Contenidos
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.
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.
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
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
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
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
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.
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.
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
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 Kodee 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 a Kodee, 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.
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 → Kodee.
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 Kodee 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.
Más comandos de Linux para la gestión de archivos
Cómo eliminar archivos y directorios
Cómo crear un archivo vacío
Cómo localizar un archivo
Cómo comprimir un archivo con el comando tar
Cómo cambiar la propiedad de un archivo con el comando chown
Cómo cambiar los permisos de un archivo con el comando chmod
Cómo renombrar un archivo
Cómo crear un enlace simbólico