Herramientas

Cómo comprimir y descomprimir archivos con tar en Linux

Guía práctica del comando Tar en Linux. Aprende a comprimir y descomprimir archivos en formatos .tar, .tar.gz y .tar.bz2 fácilmente.

tarlinuxterminalcompresionbackupgzip

1. Las dos combinaciones que te van a sacar de apuros

Para la mayoría de los casos solo necesitas aprender dos comandos. Memoriza estos y olvídate del resto hasta que los necesites:

Regla importante: la flag -f siempre va al final de las flags, justo antes del nombre del archivo .tar. Le dice a tar que lo que viene a continuación es el archivo destino, no otra opción.

Para comprimir un directorio o archivo:

tar -czvf nombre_archivo.tar.gz /ruta/de/la/carpeta_o_archivo

Para descomprimir:

tar -xzvf nombre_archivo.tar.gz

2. Qué significa cada letra

Vale, ya tienes las dos recetas. Pero copiar y pegar a ciegas tiene un problema: el día que algo falla no sabrás tocarlo. Aquí va el desglose de cada flag:

  • -c (Create): crea un archivo empaquetado. Se usa al comprimir.
  • -x (eXtract): extrae el contenido de un paquete. Se usa al descomprimir.
  • -z (gzip): comprime con gzip, que es el algoritmo estándar y el que mejor equilibrio da entre velocidad y tamaño. Genera archivos .tar.gz.
  • -j (bzip2): comprime con bzip2 y produce .tar.bz2. Comprime un poco más que gzip, a costa de ser más lento.
  • -J (xz): comprime con xz y produce .tar.xz. Es el que más comprime de los tres, ideal para archivos enormes, aunque tarda más y exige más procesador.
  • -v (Verbose): pone a tar “hablador”. Te va listando en pantalla cada archivo que procesa. Si lo quitas, trabaja en silencio total.
  • -f (File): indica que a continuación viene el nombre del archivo de salida. Es obligatorio cuando guardas el resultado en un archivo (que es lo habitual) y no en una cinta de backup, cosa que ya casi nadie hace.

3. Tabla de referencia rápida

AcciónFormato deseadoComando
Comprimir.tar.gz (Gzip)tar -czvf archivo.tar.gz carpeta/
Comprimir.tar.bz2 (Bzip2)tar -cjvf archivo.tar.bz2 carpeta/
Comprimir.tar.xz (XZ)tar -cJvf archivo.tar.xz carpeta/
DescomprimirCualquiera de arribatar -xvf archivo.tar.ext

Un detalle que ahorra disgustos: las versiones modernas de tar detectan el tipo de compresión al descomprimir, así que con un tar -xvf puedes desempaquetar .tar.gz, .tar.bz2 y .tar.xz sin tener que pensar en la z, la j o la J. Esta es la forma en la que yo trabajo la mayor parte del tiempo.

4. Dos trucos que se usan mucho

Ver qué hay dentro sin descomprimir. La flag -t (list) te muestra el contenido:

tar -tvf archivo.tar.gz

Descomprimir en una carpeta específica. Por defecto, tar extrae todo en el directorio donde estás parado. Si quieres mandarlo a otro lado, usa la -C mayúscula:

.tar -xvf archivoarchivo.tar.gz -C /ruta/del/destino

La -C tiene que ir al final del comando. Si la pones antes del nombre del archivo, tar se va a quejar de que no encuentra lo que le pides.