Compresores en Linux

En la actualidad existe gran cantidad de compresores de ficheros en Linux, pero en el día a día sólo se utilizan unos pocos. Los más usados son los siguientes:

tar

Considerado como el programa de referencia de manipulación de archivos viene por defecto en todos los Linux.

El comando tar realmente no comprime si no que empaqueta los archivos en un único archivo, aunque dispone del parámetro “-z” para compromir con el algoritmo de gzip.

La extensión usada para los archivos empaquetados con tar es “.tar” y los empaquetados y comprimidos “.tar.gz”

Ejemplos de uso

  • Empaquetar ficheros:

# tar cvf [fichero_empaquetado.tar] [origen_a_empaquetar]

  • Desempaquetar ficheros:

# tar xvf [fichero_empaquetado.tar]

  • Empaquetar y comprimir ficheros:

# tar czvf [fichero_compromido.tar.gz] [origen_a_comprimir]

  • Desempaquetar y descomprimir ficheros:

# tar xvf [fichero_compromido.tar-gz]

El comando tar también permite hacer copias incrementales, esta ficheros tendrán la extensión «.snap»

bzip2

Es una evolución de bzip. Esta desarrollado bajo licencia BSD y utiliza los algoritmos de compresión de Burrows-Wheeler y de codificación de Huffman.

La extensión utilizada para los archivos comprimidos es “.bz2”. Hay que tener en cuenta que al comprimir el archivo se remplaza por el comprimido.

Ejemplos de uso:

  • Comprimir ficheros:

# bzip2 [origen_a_comprimir]

  • Descomprimir ficheros:

# bzip2 –d [fichero_comprimido.bz2]

  • Comprimir ficheros manteniendo el fichero original:

# bzip2 –c [origen_a_comprimir] > [fichero_comprimido.bz2]

 

gzip/gunzip

Estas herramientas de compresión/descompresión, utilizan la codificación Lempel-Ziv coding (LZ77).

La extensión utilizada para los archivos comprimidos es “.gz”. Hay que tener en cuenta que al comprimir el archivo se remplaza por el comprimido.

Ejemplos de uso:

  • Comprimir ficheros:

# gzip [origen_a_comprimir]

  • Descomprimir ficheros:

# gzip –d [fichero_comprimido.gz]

# gunzip [fichero_comprimido.gz]

  • Comprimir ficheros manteniendo el fichero original:

# gzip –c [origen_a_comprimir] > [fichero_comprimido.gz]

 

xz/unxz

El método de compresión que utilizan estos archivos está basado en el algoritmo de LZMA/LZMA2. Forma parte del grupo de compresores del tipo “sin perdida”, al contrario de otros compresores no omiten información al comprimir el archivo.

La extensión utilizada para los archivos es “.xz”. Este comando permite varios niveles de compresión enumerados del 0 al 7, por defecto usa el nivel 6.

Ejemplos de uso:

  • Comprimir ficheros:

# xz –zk [origen_a_comprimir]

  • Comprimir ficheros sin borrar origen:

# xz –zk [origen_a_comprimir]

  • Descomprimir ficheros:

# xz –d [fichero_comprimido.xz]

# unxz [fichero_comprimido.xz]

Cpio

Este comando es muy similar al comando tar, pero se diferencian en su funcionamiento.

Dispone de tres modos de funcionamiento:

  • Modo copy-out.- Este modo se activa mediante el uso de las opciones -o o –create, crea un archivo y copia ficheros en éste.
  • Modo copy-in.- Podemos activarlo usando las opciones -i o –extract. Este modo extrae información de un archivo existente.
  • Modo copy-pass.- Este modo se activa mediante la opción -p o –pass-through. Combina los dos modos anteriores, permitiéndole copiar un árbol de directorios de una ubicación a otra.

La extensión de los archivos generados es “.cpio”.

Ejemplos de uso:

  • Crear un archivo:

# ls | cpio -ov > /tmp/fichero.cpio

  • Descomprimir un archivo:

# cpio -idv < /tmp/object.cpio