Empaquetar, comprimir y descomprimir desde la consola de comandos en Linux

Muchas veces necesitamos trasladar grandes volúmenes de informaciones desde un servidor a otro o quizás a un dispositivo USB externo. Al realizar esta copia, en ocasiones se vuelve tedioso el tiempo de espera, ya que en la mayoría de los casos son miles o millones de ficheros copiándose de un lado para otro y la velocidad de la transferencia varía en dependencia de muchos factores.

En la práctica podemos lograr que al copiar estos ficheros la velocidad de transferencia sea un poco más estable y rápida, logrando así un menor tiempo en la espera de este proceso.

¿Cómo lo logramos?

Empaquetando todos los ficheros en uno solo, increíblemente es mucho más práctico, se lo aseguro. Este proceso de empaquetado lo haremos mediante el formato de archivo más usado en entornos UNIX, identificado con la extensión .tar.

Ejemplos de opciones más usados

Empaquetar:

tar cvf archivo.tar /directorio/*

Empaquetara todo el contenido del directorio

Desempaquetar:

 tar xvf archivo.tar

Extraerá todo el contenido del fichero archivo.tar

Visualizar:

 tar tvf archivo.tar

Se podrá ver el contenido sin extraer del fichero archivo.tar

Es importante aclarar que la orden del TAR no comprime, solo almacena archivos y directorios en un solo fichero, por lo que no reduce el tamaño de los archivos. Sin embargo se puede combinar la funcionalidad de los archivos .tar con una compresión de datos que disminuya su tamaño final.

Métodos de comprensión existen muchos, los más usados en sistemas Unix son gz y bz, estos tienen un problema, solo comprimen archivos, no directorios, es por ello que antes hay que empaquetar todo los archivos.

¿Cómo Empaquetar, Comprimir y Descomprimir?

.tar.gz – .tar.z – .tgz (tar con gzip)

Empaquetar y comprimir:        tar czvf archivo.tar.gz /directorio/*
Desempaquetar y descomprimir:  tar xzvf archivo.tar.gz
Ver el contenido sin extraer:  tar tzvf archivo.tar.gz

.tar.bz2 (tar con bzip2)

Empaquetar y comprimir:        tar -c /directorio/* | bzip2 > archivo.tar.bz2
Desempaquetar y descomprimir:  bzip2 -dc archivo.tar.bz2 | tar -xv
Ver el contenido sin extraer:  bzip2 -dc archivo.tar.bz2 | tar -tv

Otras opciones para Comprimir y Descomprimir

.gz (gzip)

Comprimir:      gzip -q archivo
Descomprimir:   gzip -d archivo.gz

.bz2 (bzip2)

Comprimir:      bzip2 archivo
Descomprimir:   bzip2 -d archivo.bz2

.zip (zip)

Comprimir:      zip archivo.zip /directorio/fichero
Descomprimir:   unzip archivo.zip
Ver contenido:  unzip -v archivo.zip

.rar (rar)

Comprimir:      rar -a archivo.rar /directorio/fichero
Descomprimir:   rar -x archivo.rar
Ver contenido:  rar -v archivo.rar
                rar -l archivo.rar

.lha (lha)

Comprimir:      lha archivo.lha /directorio/fichero
Descomprimir:   lha -x archivo.lha
Ver contenido:  lha -v archivo.lha
                lha -l archivo.lha

.zoo (zoo)

Comprimir:      zoo -a archivo.zoo /directorio/fichero
Descomprimir:   zoo -x archivo.zoo
Ver contenido:  zoo -v archivo.zoo
                zoo -L archivo.zoo

.arj (arj)

Comprimir:      arj a archivo.arj /directorio/fichero
Descomprimir:   arj -x archivo.arj
Ver contenido:  arj -v archivo.arj
                arj -l archivo.arj

Nota: Intentar no usar RAR o ARJ que usan formatos propietarios.

Enlaces

Wikipedia: http://es.wikipedia.org/wiki/Tar
One kind of Life: http://doutdex.wordpress.com/2008/04/28/comprimir-y-descomprimir-rargzipziptartargzbz2-lha-zoo-en-linux-comando-consola/

  • Pablo

    Roger,

    Es más sencillo si encadenas los comandos en el tar, por ejemplo, para comprimir con tar y gzip (b2zip) directo:

    Comprimir: tar czf fichero.tgz directorioOfichero1 [directorioOfichero2 [directorioOfichero3]…]

    Descomprimir: tar xzf fichero.tgz

    Con b2zip:

    tar cjf fichero.tbz2 directorioOfichero1 [directorioOfichero2 [directorioOfichero3]…]

    Descomprimir: tar xjf fichero.tbz2