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:
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.
- 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






