Extraer un solo archivo de un zip en Linux

Published:

Porque voy a descomprimir todos los archivos que contiene un ZIP? Si solo necesito uno solo, hoy vamos a develar el misterio que muchos se habrán preguntado…….. Seamos sinceros posiblemente ni lo pensaste ni lo ibas a pensar en tu vida, pero hoy te muestro que esto es posible de forma simple.

En la terminal claro tengo un archivo llamado fotos.zip que contiene 3 archivos, quiero extraer solo la foto2.png, esto es solo a modo de ejemplo, puedo tener 50 o 1000 archivos en varias carpetas, pero la idea es extraer uno solo.

1- Listo el contenido del archivo zip

unzip -l fotos.zip

2- Extraigo el archivo que quiero, mirar bien que al final de la sintaxis hay un punto.

unzip -j fotos.zip "foto2.png" -d .

3- Resultado de la operación:

zip1

PD: si no sabías zip es un paquete que se debe instalar en Debian, podemos resolverlo haciendo

apt install zip

Ejemplos de uso

Ahora veamos ejemplos prácticos para el uso de estos comandos de compresión y descompresión de archivos.

  1. Para comprimir archivos, lanzamos el comando zip, seguido del nombre del archivo.zip donde se comprimirán los archivos, y después los archivos a comprimir, podemos hacer uso de comodines como *.
zip fotos.zip foto1.png foto2.png foto3.png etc....
zip fotos.zip *.png

2. El comando zip nos permite incluir subdirectorios en el archivo creado usando la opción -r (recursive) e indicar el nombre del subdirectorio, vamos a comprimir los archivos con extensión .txt y adicionalmente, añadir el subdirectorio tmp, para esto ejecutamos lo siguiente en la terminal. Todo estará comprimido en un archivo llamado prueba.zip.

zip -r -q prueba.zip tmp/ *.txt

3. Ajustar el nivel de compresión de un archivo en Linux

Al crear un archivo comprimido podemos especificar el nivel de compresión, podemos usar un rango de 0 a 9, donde el valor 0 hace referencia a que no se usará ningún tipo de compresión y 9 obviamente la mayor compresión, mientras más compresión más tardará el proceso y se consumirán más recursos. Por defecto en Linux el valor establecido de compresión es 6. Pero veamos como ajustar esto:

Sin compresión

zip -0 -r -q nksistemas.zip *.txt

Con la mejor compresión

zip -9 -r -q nksistemas.zip *.txt

4. Cómo agregar una contraseña a un archivo comprimido en Linux

Para esto simplemente se debe añadir el parámetro -e (encrypt) para que nos solicite la contraseña y confirmarla directo en la terminal:

zip -e -r -q nksistemas.zip *.txt

Otra forma interesante es usar el comando zipcloak, que solicitará la contraseña 2 veces. Y dejará el archivo en el mismo lugar, aunque puede incrementar un poquito el tamaño.

zipcloak twofiles.zip

5. No ver la salida de comprimir y descomprimir.

Cuando lanzamos el comando zip o unzip se va a mostrar la lista de lo que se comprime o descomprime, pero podemos evitar que se muestre con el parámetro -q

zip -q nksistemas.zip *.txt

unzip -q nksistemas.zip

6. Buscar contenido en un archivo zip en Linux

Podemos buscar una palabra por ejemplo dentro de un archivo de texto que esté comprimido. Vamos a usar el comando zipgrep, seguido del término a buscar, dentro de una estructura de archivos comprimidos en nksistemas.zip

zipgrep readme nksistemas.zip

7. Saber la información del archivo zip

Podemos saber, que permisos tienen los archivos, la versión de la herramienta usada para la creación del archivo ZIP, el método de compresión, tamaño del archivo original, descriptor del archivo (El descriptor de archivo está compuesto por dos caracteres el primero puede ser una «t» o una «b» la cual indica si es un archivo de texto o binario, en caso de ser una letra mayúscula, significa que el archivo está encriptado. El segundo carácter representa el tipo de metadatos incluido para el archivo, las opciones son ninguno, un encabezado local extendido, un «campo adicional» o ambos.), nombre de los objetos dentro del comprimido y más, veamos un ejemplo:

zipinfo nksistemas.zip | les

8. Como dividir un archivo zip o comprimido en Linux

A veces un archivo resulta muy grande así que vamos a partirlo.

zipsplit -n 102400 nksis1.zip

9. El comando zipnote

zipnote, nos permite ver los comentarios de archivos zip o agregarlos. Para ver hacemos:

zipnote nksistemas.zip
- Advertisement -
Jorge
Jorgehttps://nksistemas.com
Soy Jorge, Sr Sysadmin Linux/DevOps/SRE y creador de NKSistemas.com Trabajo con plataformas: Linux, Windows, AWS, GCP, VMware, Helm, kubernetes, Docker, etc.

Related articles