Compresión de archivos en Linux desde la consola

En Tutoriales y Guías por

Bienvenidos al mundo de la compresión en el universo GNU/Linux, algo relativamente sencillo pero que cobra cierta complejidad cuando somos usuarios noveles. Si además nos limitamos al uso de la consola, el desafío puede ser mucho mayor, pero con este tutorial adquirirás las bases para desenvolverte con soltura.

Compresión de archivos en Linux desde la consola

En la actualidad, existen infinidad de compresores, algoritmos, empaquetadores, descompresores, etc. Aunque todos estos tienen por lo general el mismo fin, su uso, funciones o rendimiento pueden variar. Por este motivo es bueno conocer las herramientas básicas de compresión y su manejo, así no nos cogerá por sorpresa.

Guía básica sobre la compresión de archivos en Linux desde la consola.

Dentro de las herramientas de compresión/descompresión disponibles para Linux, existe una gran variedad, pero no debemos confundir una herramienta con un algoritmo de compresión. Un algoritmo de compresión es un sistema de codificación de datos, el cual permite representar una cierta cantidad de información empleando un espacio menor que el usado originalmente.

También debemos diferenciar un archivador de un compresor. Un compresor simplemente es capaz de comprimir un fichero, mientras que un archivador puede almacenar una estructura de directorios y además puede permitir la compresión de los datos. Para entenderlo mejor, con un compresor sólo podemos comprimir un archivo, mientras que con un archivador podemos comprimir archivos, carpetas y estructuras de directorios.

Principales compresores, archivadores y sus formatos.

Cuando llegamos a un sistema operativo GNU/Linux y comenzamos a descargar archivos de internet, nos encontraremos con multitud de extensiones y formatos, pero los más habituales son:

  • Zip: es una extensión conocida por todos, ya que se usa desde hace muchísimos años y está presente en prácticamente cualquier sistema operativo. Este formato se reconoce por la extensión de archivo .zip.
  • Gzip: es un formato cuyo nombre proviene de GNU Zip, pero no debemos confundirlo con Zip, ya que son formatos diferentes e incompatibles. Gzip sólo puede comprimir archivos, pero no puede archivarlos, por eso se suele usar normalmente con el archivador tar. Los archivos comprimidos con Gzip tienen la extensión .gz y cuando se usan combinados con tar suelen tener la extensión tar.gz o .tgz.
  • bzip2: el formato bzip2 ofrece una mayor compresión que Gzip, pero también usa más memoria y tiempo para comprimir/descomprimir. Bzip2 emplea la extensión .bz2, pero se suele usar en combinación con el archivador tar dando como resultado la extensión .tar.bz2, aunque también nos podemos encontrar extensiones como .tbz, .tbz2 o .tb2.
  • xz: este formato es de los más modernos y su uso se ha extendido bastante por la red. Ofrece excelentes ratios de compresión y ya publicamos hace algún tiempo un tutorial de cómo descomprimir archivos .tar.xz en Linux. Este formato emplea la extensión .xz, pero por lo general se usa con el archivador tar por lo que la extensión más habitual es .tar.xz o .txz.
  • rar: un formato de los más conocidos y usados en la red para distribuir y compartir archivos. Este formato comprime y además archiva, pero no es software libre, por lo que en algunas distribuciones Linux será necesario la instalación de programas adicionales. La extensión de archivo para este formato es .rar.
  • 7zip: esta es una herramienta libre para archivar ficheros y que emplea el formato 7z con el algoritmo de compresión LZMA y PPMD. Este archivador soporta multitud de formatos de compresión y su extensión es .7z.
  • lzma: hace referencia al algoritmo de compresión LZMA y se puede emplear en combinación con el archivador tar. Nos podemos encontrar archivos con la extensión .lzma o .tar.lzma, pero son extensiones poco frecuentes.
  • lzip: se trata de un programa libre que emplea el algoritmo de compresión LZMA. Su extensión de archivo es .lz pero se suele emplear junto a tar originando la extensión de archivo .tar.lz o .tlz.
  • compress: es una herramienta que actualmente no tiene mucho uso y que emplea el algoritmo Lempel-Ziv modificado (Lempel-Ziv-Welch). La extensión de archivo pro defecto de compress es .z pero como se puede usar con tar, también podemos encontrarnos las extensión .tar.z, .taz o .tz.
  • tar: como ya dijimos con anterioridad, se trata de un archivador y por si sola esta herramienta no comprime los datos. Este archivador fue diseñado para entornos Unix y emplea la extensión de archivo .tar.

compresores extensiones linux

Comandos básicos para comprimir y descomprimir los diferentes formatos en Linux.

En este apartado daremos los comandos básicos para que podáis descomprimir archivos comprimidos o comprimir vuestros propios archivos y carpetas.

TAR.

Aclarar que en este caso tar no usará ningún tipo de compresión y los comandos serían:

  • Comprimir: tar cvf paquete.tar /home/carpeta
  • Descomprimir: tar -xvf paquete.tar

ZIP.

Para comprimir archivos zip desde la consola suele ser necesario instalar la herramienta unzip. En Ubuntu podemos instalarla con el comando sudo apt-get install unzip. Después para descomprimir un fichero zip tendremos que emplear el comando unzip archivo.zip.

Comando para comprimir archivos: zip paquete.zip /home/carpeta

Gzip.

Si usamos Gzip junto a la herramienta tar, podemos usar los siguientes comandos:

  • Comprimir: tar -zcvf paquete.tar.gz /home/carpeta
  • Descomprimir: tar -zxvf paquete.tar.gz

Bzip2.

El uso de bzip2 es generalmente junto a tar, por lo que los comandos serían:

  • Comprimir: tar -jcvf paquete.tar.bz2 /home/carpeta
  • Descomprimir: tar -xvf paquete.tar.bz2

XZ.

En este caso los comandos serían:

  • Comprimir: tar -Jcvf paquete.tar.xz /home/carpeta
  • Descomprimir: tar -xvf paquete.tar.xz

RAR.

Para descomprimir ficheros rar se emplea la herramienta unrar, sobre la cual ya escribimos un completo tutorial de cómo descomprimir archivos rar en Ubuntu y cómo instalar esta herramienta.

7zip.

Esta herramienta soporta múltiples formatos de archivo, pero para emplearlo con el formato 7z podemos emplear los siguientes comandos básicos:

  • Comprimir: 7z a paquete.7z /home/carpeta
  • Descomprimir: 7z e paquete.7z

Compress.

Este compresor se emplea generalmente con tar y los comandos básicos de uso son:

  • Comprimir: tar -cZvf paquete.tar.z /home/carpeta
  • Descomprimir: tar -xvf paquete.tar.z

LZMA.

Generalmente veremos que se usa con archivos tar y los comandos son:

  • Para comprimir: tar -cvf paquete.tar.lzma --lzma /home/carpeta
  • Para descomprimir: tar -xvf paquete.tar.lzma

Lzip.

Vamos a necesitar instalada la herramienta Lzip para comprimir y descomprimir estos ficheros, por lo que tendremos que instalarla. En Ubuntu es tan sencillo como ejecutar el comando sudo apt-get install lzip.

Una vez instalada la herramienta, bastará con emplear los siguientes comandos:

  • Comprimir: tar -cvf paquete.tar.lz --lzip /home/carpeta
  • Descomprimir: tar -xvf paquete.tar.lz

Como habrás podido comprobar, existen muchísimos formatos de compresión, pero podemos recurrir a herramientas como DTRX que nos facilitan la tarea.