Cómo comprimir y descomprimir ficheros en GNU/Linux

,

En este artículo vamos a mostrar cómo comprimir y descomprimir ficheros en GNU/Linux, desde la consola. Abarcaremos los formatos rar, gzip, zip, tar, tar.gz, bz2 y lha. Además les mostraremos cómo descomprimir los backup generados por Proxmox VE.

Aunque el proceso de comprimir y descomprimir ficheros en GNU/Linux es un proceso bastante sencillo suele confundirnos al principio si no estamos claro de las opciones y qué formatos emplear.

Los formatos más comunes son zip, tar y tar.gz; aunque si quieres obtener un máximo de comprensión te encontrarás con bz2. Las distribuciones GNU/Linux ofrecen herramientas gráficas que te permitirán comprimir y descomprimir ficheros sin dificultad alguna. Pero si quieres ser un usuario avanzado de consola, este tip que traemos hoy es para ti.

Fichros .tar

El manejador de archivos tar se realiza con el comando tar. Este formato tiene la particularidad que no realiza compresión (ahorro de espacio en disco), en su forma simple, sobre los ficheros por lo que se lleva a cabo un simple empaquetado. Esto puede ser útil si solo queremos agrupar (empaquetar) una serie de ficheros o directorios.

Operaciones

Empaquetar los ficheros del directorio foo:
$ tar cvf archivo.tar /foo/*

Desempaquetar fichero .tar en el directorio actual:
$ tar xvf archivo.tar

Listar solo contenido del tarball:
$ tar tvf archivo.tar

Ficheros .tar.gz – .tar.z – .tgz

El proceso aquí consiste en realizar un empaquetado y comprimirlo para ello se emplea el comando tar con gzip. Pero el primero tiene la posibilidad de llamar al segundo mediante el argumento z.

Operaciones

Comprimir los ficheros del directorio foo:
$ tar czvf archivo.tar.gz /foo/*

Descomprimir un fichero .tar.gz en el directorio actual:
$ tar xzvf archivo.tar.gz

Lista solo contenido del tarball:
$ tar tzvf archivo.tar.gz

Ficheros .gz

Estos archivos son creados con la herramienta gzip. El nombre proviene de GNU ZIP, y se hizo como sustituito del formato ZIP, pero no es el mismo. Gzip tiene la particularidad de que no comprimir directorios, solo archivos, de ahí que se combina con tar como vimos anteriormente.

Operaciones

Comprimir el un fichero (la operación siguiente nombra el fichero resultantante a «archivo.gz«):
$ gzip -q archivo

Descomprimir un fichero:
$ gzip -d archivo.gz

Ficheros .bz2

Son creados con la herramienta bzip2, la cual es similar a la anterior, pero con un algoritmo de compresión diferente llamado Burrows-Wheeler y Huffman coding. Esta herramienta también tiene la particularidad de no comprimir directorios, solo ficheros; por lo que hay que usarla en combinación con tar.

Operaciones

Comprimir un archivo (fichero resultante se llamará «archivo.bz2«):
$ bzip2 archivo

Comprimir archivos del directorio foo (emplear cualquier de los dos métodos mostrados):
$ tar -c foo/* | bzip2 > archivos.tar.bz2
$ tar jcvf archivos.tar.bz2 foo/*

Descomprimir un archivo (emplear cualquier de los dos métodos mostrados):
$ bzip2 -dc archivo.tar.bz2 | tar -xv
$ tar jxvf archivo.tar.bz2

Listar solo el contenido (emplear cualquier de los dos métodos mostrados):
$ bzip2 -dc archivo.tar.bz2 | tar -tv
$ tar jtvf archivo.tar.bz2

Ficheros .zip

Son manejados con la herramienta zip (para comprimir ) y unzip (para descomprimir). El nombre de los ambos paquetes para las diferentes distribuciones GNU/Linux suele ser el mismo, lo que cambia es el gestor de paquetes a emplear.

Para RHEL/CentOS:
$ sudo yum install zip unzip

Para Debian/Ubuntu:
$ sudo apt install zip unzip

Operaciones

Comprimir un ficheros del directorio foo:
$ zip archivos.zip foo/*

Descomprimir ficheros en el directorio actual:
$ unzip archivos.zip

Solo listar contenido:
$ unzip -v archivos.zip

Ficheros .lha

La herramienta empleada para manejar este formato de archivos es lha. También soporta variantes de ficheros .lha, como .lzs y .pma. Es una herramienta que no viene instalada por defecto en las distribuciones GNU/Linux.

Para RHEL/CentOS:
$ sudo yum install zip unzip

Para Debian/Ubuntu:
$ sudo apt install zip unzip

Operaciones

Comprimir ficheros del directorio foo:
$ lha archivos.lha /foo/*

Descomprimir archivos en el directorio actual
$ lha -x archivos.lha

Listar solo el contenido (emplear una de los dos comandos):
$ lha -v archivo.lha
$ lha -l archivo.lha

Ficheros. rar

La manipulación de este tipo de archivos se lleva a cabo con las herramientas rar (comprimir y descomprimir) y unrar (descomprimir). No suele venir instalada por defecto en el sistema operativo.

Para RHEL/CentOS:
$ wget https://www.rarlab.com/rar/rarlinux-x64-5.7.1.tar.gz
$ tar zxvf rarlinux-x64-5.7.1.tar.gz
$ cd rar
$ sudo cp -v rar unrar /usr/local/bin/

Para Debian/Ubuntu:
$ sudo apt install rar unrar

Operaciones

Comprimir archivos de directorio foo:
$ rar -a archivos.rar foo/*

Descomprimir archivos en el directorio actual:
$ rar -e archivos.rar

Listar solo el contenido (emplear una de los dos comandos):
$ rar -v archivo.rar
$ rar -l archivo.rar

Ficheros .tar.lzo

Proxmox VE en la generación de sus ficheros de backup, emplea el formato .tar.lzo; lo cual se traduce en empaquetar y aplicar un algoritmo de compresión. El compresor lzo, es muy similar a gzip, pero se diferencia en que favorece la velocidad sobre la relación de compresión.

Para descomprimir un backup de Proxmox VE en el directorio actual:
$ lzop -d -c vzdump-lxc-104-2016_04_12-22_44_16.tar.lzo | tar xvf –

Finalizando

Este este tip, hemos dejado de forma sencilla y clara cómo comprimir y descomprimir archivos mediante la línea de comandos de GNU/Linux. Recuerda que siempre puedes hacer uso del manual (ejemplo: man tar) de la herramienta para ver otras opciones. Si conoces otras herramientas o casos de ejemplos, háznolo saber en los comentarios!

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *