Herramientas de compresión

Rafa Morales 12 Septiembre 2013
4min
0
Linux

Cualquier distribución de Linux incluirá tanto tar como los paquetes con las librerías y utilidades para comprimir y descomprimir ficheros tanto con gzip como con bzip2. Además, actualmente tar está muy integrado con ambos algoritmos de compresión y nos evita tener que utilizar comandos algo más complicados para comprimir y descomprimir ficheros

 

gzip

Con este comando podremos comprimir uno o varios ficheros dentro de un solo fichero con extensión .gz. El fichero original continuará en su sitio. Utiliza para comprimir el algoritmo de comprensión Lempel-Ziv.

De la siguiente manera se comprime el archivo desapareciendo el original. Al resultado se le añade la extensión .gz.

gzip file1

Podemos redefinir el archivo de salida, aunque también comprime el original.

gzip file1 > comprimido.gz

Si no queremos perder el archivo original utilizamos el parámetro –c que saca por pantalla el resultado y sólo tenemos que redirigirlo.

gzip –c file1 > file1.gz
gzip –c file1 file2 > files.gz

Con este comando también podremos descomprimir, utilizando en parámetro -d. Si hemos comprimido dos archivos juntos, cuando ahora descomprimamos ese archivo no tendremos los dos archivos independientes, si no que tendremos uno sólo con la concatenación de ambos. También tener en cuenta que el fichero .gz desaparece al descomprimirlo.

gzip –d files.gz

 

gunzip

Comando para descomprimir los ficheros .gz. El fichero comprimido desaparece.

gunzip files.gz

 

bzip2

Comprime con las mismas opciones y propiedades que gzip, pero utilizando el algoritmo de compresión Burrows-Wheeler. Bzip2 comprime mucho mejor pero tarda más tiempo en llevarlo a cabo.

bzip2 file1
bzip2 –c file1 > file.bz2
bzip2 –d file.bz2

 

bunzip2

Comando para descomprimir los ficheros .bz2. El fichero comprimido desaparece.

bunzip2 files.bz2

 

tar

Comando para unir ficheros y directorios en un único fichero. El fichero o directorio origen no desaparece. Crea internamente una estructura de directorios idéntica a la que se copia, pero quitándole el directorio / para poder posteriormente descomprimirlo donde deseemos.

tar cf files.tar file1
tar cf files.tar directorio/
tar cf /root/files.tar /home/usuario/*

Para descomprimir un fichero .tar usaremos los parámetros xf. En este caso el fichero comprimido no desaparece.

tar xf files.tar

Para descomprimir en un directorio diferente al que nos encontramos utilizamos –C. El directorio de destino debe de existir.

tar xf files.tar –C directorio/

Para descomprimir el contenido utilizando rutas absolutas.

tar xf files.tar -P -C directorio/

Para listar el contenido de un archivo tar.

tar tvf files.tar
 

tar con gzip/bzip2

Es una práctica muy habitual encontrar ficheros comprimidos con la extensión .tar.gz o .tar.bz2. Consiste en utilizar ambas tecnologías de compresión. Se puede conseguir comprimiendo con tar y luego con gzip o bzip2. De esta manera aprovechamos la ventaja de comprimir directorios de tar y la gran compresión de gzip o bzip2.

Pero existe una manera mucho más cómoda que comprimir el fichero en dos ocasiones, y es utilizar unos parámetros determinados del comando tar, z para gzip y j para bzip2.

tar zcf manual.tar.gz manual/
tar jcf manual.tar.bz2 manual/

Para descomprimir esos mismos ficheros con un solo comando utilizaremos los mismos parámetros anteriores.

tar zxf manual.tar.gz
tar zxf manual.tgz
tar jxf manual.tar.bz2

Si solo queremos extraer un fichero o directorio del fichero comprimido lo podemos hacer indicando justo al final del comando el nombre y la ruta relativa (sin la barra raíz inicial) del fichero dentro del comprimido que queremos extraer:

tar jxf manual.tar.gz home/usuario/manual.xml
tar jxf manual.tar.gz -C /root home/usuario/manual.xml

 

unzip

Comando para descomprimir los ficheros .zip generados en Windows. Linux puede descomprimirlos pero hay que saber que estos comandos no son libres.

unzip fichero.zip

 

unrar

Comando para descomprimir los ficheros .rar generados en Windows. Linux puede descomprimirlos pero hay que saber que estos comandos no son libres.

unrar fichero.rar

Para descomprimirlos con la ruta completa.

unrar x fichero.rar

 

zcat

Con este comando podemos visualizar el contenido de un fichero comprimido con gzip sin necesidad de tener que descomprimirlo previamente.

zcat messages.gz