Cuando gestionamos ambientes Linux es muy importante conocer el funcionamiento y rol de muchos de los comandos que nos permiten efectuar determinadas tareas en Linux. Hoy hablaremos de tres en particular que nos permiten gestionar todo lo relacionado con la compresión o expansión de archivos.
1. GZIP
Este comando se encarga de la reducción del tamaño de los archivos usando codificación LZ77 (Lempel-Ziv). GZIP convierte los archivos con las siguientes extensiones, sin perder su calidad ni sus propiedade4s, dependiendo el entorno usado:
- .gz: Máquinas virtuales
- .z: MSDOS, FAT de Windows o OS/2
GZIP es una abreviación de GNU ZIP la cual es el reemplazo del programa compress. Cuando un nombre de archivo es demasiado largo GZIP se encarga de truncarlo para su correcta administración. Por defecto GZIP conserva el nombre original del archivo y todas sus propiedades sin afectar ninguna, lo que facilita su gestión y correcta ejecución. Cuando hemos comprimido un archivo con GZIP podremos descomprimirlo usando alguna de las siguientes opciones:
- gzip –d
- zcat
- gunzip
En caso de que el nuevo nombre del archivo a descomprimir no esté en el lineamiento del sistema de archivos actual se creara uno nuevo. GUNZIP reemplaza cada archivo que comprimamos cuya terminación sea .gz, -gz, .z, -z, o _z y del mismo modo reconoce las extensiones .tgz y .taz. Con este comando tenemos la posibilidad de descomprimir archivos que hayan sido creados por alguna de las siguientes herramientas:
gzip, zip, compress, compress -H o pack.GZIP detecta automáticamente estas extensiones y ejecuta su proceso.Podemos extraer múltiples archivos Zip usando unzip.
gzip [ -acdfhlLnNrtvV19 ] [-S sufijo] [ nombre ... ]
2. ZCAT
Su uso es idéntico a gunzip –c, y su función principal es descomprimir una lista de archivos a través de la línea de comandos.
ZCAT descomprimirá el archivo si cuenta con el número mágico independiente de si es o no .gz. Adicional con ZCAT tenemos la posibilidad de ver el contenido de un archivo comprimido sin la necesidad de descomprimirlo tal como si usáramos el comando cat.
zcat [ -fhLV ] [ nombre ... ]
3. GUNZIP
Con GUNZIP tenemos la posibilidad de comprimir archivos usando la tecnología Lempel-Ziv y permite que determinados archivos presenten una reducción hasta del 60% en su tamaño lo cual ayuda a nivel de espacio en el equipo. GUNZIP conserva todas las propiedades del archivo a comprimir o descomprimir.
gunzip [ -acfhlLnNrtvV ] [-S sufijo] [ nombre... ]
4. TAR
Uno de los comandos para descomprimir o comprimir archivos a través de la terminal en Linux es el comando tar, si quieres información sobre este teclea en una terminal man tar y verás todas sus opciones. Puede comprimir un directorio completo o un fichero simple, además puede trabajar de forma recursiva (por ejemplo comprimiendo todo lo que se encuentra dentro de un directorio que le especifíques).
Tenemos que ejecutar la siguiente instrucción:
tar -czvf archivo.tar.gz nombreDeArchivoAComprimir
- -c: Crea un archivo
- -z: Comprime el archivo con gzip.
- -v: Para activar el modo “verbose”. Es opcional, pero te puede servir de ayuda.
- -f: Te permite especificar el nombre del archivo.
Vamos a ver un ejemplo, si queremos comprimir una carpeta llamada Solvetic con un nombre comprimidoSolvetic:
tar -czvf comprimidoSolvetic.tar.gz Solvetic
Debemos ejecutar la siguiente instrucción:
tar -xzvf archivoComprimido.tar.gzLos parámetros son los mismos, salvo que se ha cambiado -c por -x, este sirve para indicar que queremos extraer el contenido.
Si quieres extraer el contenido en un directorio diferente en el que estás situado añadimos al final -C directorio (la C aquí es mayúscula, no como la de crear que es minúscula).
tar -xzvf archivoComprimido.tar.gz –C directorioDondeExtraerVamos a hacer un ejemplo queremos descomprimir el archivo que hemos comprimido anteriormente comprimidoSolvetic.tar.gz y lo queremos guardar en la directorio padre (..):
tar -xzvf comprimidoSolvetic.tar.gz –C ./..
Imagina que solo quieres extraer un cierto contenido del paquete, para ello sería interesante listar el contenido del tar, lo puedes hacer de la siguiente manera:
tar –tf archivo.tar.gz tar -tzf archivo.tar.gz
Y una vez ya hemos visto el contenido, imagina que te interesan los ficheros .txt, entonces lo que ejecutaríamos es lo siguiente (es posible que no necesites poner --wildcards):
tar –xvf archivo.tar.gz –-wildcards “*.txt”A continuación os muestro la salida en la terminal del uso de la última instrucción, primeramente se ve el contenido de todo el .tar.gz y en la segunda parte apreciamos el contenido que se extrae (todos los archivos .txt).
5. Parámetros de los comandos
- -a, --ascii: Es el modo de texto ASCII, es decir, convierte finales de línea en convenciones normales.
- -c, --stdout, --to-stdout: Conserva los archivos originales sin cambios.
- -d, --decompress, --uncompress: Descomprime un archivo
- -f, --force: Forza la compresión o descompresión de uno o más archivos
- -h, --help: Despliega la ayuda del comando en mención
- -l, --list: Contamos con las siguientes opciones:
- compressed size: Tamaño del archivo comprimido
- uncompressed size: Tamaño del archivo descomprimido
- uncompressed_name: Nombre del archivo descomprimido
- -L, --license: Licencia del comando
- -n, --no-name: Al momento de la compresión no guarda el nombre del archivo original
- -q, --quiet: Elimina todas las advertencias
- -r, --recursive: Permite recorrer la estructura de directorios de forma recursiva
- -t, --test: Prueba la integridad del archivo comprimido
- -v, --verbose: Despliega el nombre y porcentaje reducido de cada archivo procesado
- -V, --version: Despliega la versión actual del comando
- ast, --best: Esta opción nos permite regular la velocidad de compresión de los archivos donde uno (1) es rápido y nueve (9) es mejor.
La forma de uso de cada comando es la siguiente:
gzip fichero a comprimir gunzip fichero a descomprimir.gz zcat archivo a visualizar.gz
Cada uno de estos comandos nos ofrece opciones prácticas para la múltiple gestión de los archivos en Linux.