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!
Dejar un comentario
¿Quieres unirte a la conversación?Siéntete libre de contribuir