Guía completa del comando tar en Linux

Introducción

En este artículo exploraremos los principios de funcionamiento del comando tar, el método más utilizado en entornos Linux para empaquetar y comprimir archivos y directorios de gran tamaño. Comprenderá la diferencia fundamental entre empaquetar y comprimir, y aprenderá a dominar las opciones esenciales mediante prácticas reales en la terminal.

Conceptos básicos de tar: diferencia entre empaquetar (Archive) y comprimir (Compression)

Para realizar la práctica de empaquetado con tar, creamos un directorio de trabajo y archivos de texto de ejemplo.

mkdir -p ~/tar-demo/sample && echo ‘Hello Linux 1’ > ~/tar-demo/sample/file1.txt && echo ‘Hello Linux 2’ > ~/tar-demo/sample/file2.txt

El comando tar se utiliza para empaquetar múltiples archivos y directorios en un solo archivo de archivo (archive) o para extraerlos.
Combinando las opciones -c, -v, -f y la opción -C, empaquetamos el directorio sample generando el archivo archive.tar.
⚙️ [Opciones principales]

-c : Crea un nuevo archivo de empaquetado (archive).
-x : Extrae o descomprime el contenido de un archivo tar.
-t : Muestra la lista de archivos contenidos dentro del archivo tar.
-v : Muestra en pantalla el progreso detallado del proceso de empaquetado o extracción.
-f : Especifica el nombre del archivo de archivo sobre el que se trabajará.
-z : Comprime o descomprime utilizando el algoritmo gzip (.tar.gz).
-j : Comprime o descomprime utilizando el algoritmo bzip2 (.tar.bz2).
-J : Comprime o descomprime utilizando el algoritmo xz (.tar.xz).
-C : Especifica la ruta del directorio de destino donde se ejecutará la operación.

tar -cvf ~/tar-demo/archive.tar -C ~/tar-demo sample

Comprobamos la información detallada del archivo archive.tar generado y del directorio original mediante el comando ls -lh.
Dado que se trata simplemente de un archivo empaquetado para agrupar elementos, no ha pasado por un proceso de compresión para reducir el tamaño.

ls -lh ~/tar-demo

Opciones prácticas de compresión: combinación con gzip(-z) y bzip2(-j)

Al añadir la opción de compresión gzip -z, se crea un archivo .tar.gz que empaqueta y comprime el directorio sample simultáneamente.
Es el método más utilizado en entornos de producción gracias a su rápida velocidad de compresión y un nivel de compresión óptimo.

tar -czvf ~/tar-demo/archive.tar.gz -C ~/tar-demo sample

Al especificar la opción de compresión bzip2 -j, se crea un archivo .tar.bz2 empaquetando y comprimiendo al mismo tiempo el directorio sample.
Aunque requiere más tiempo de procesamiento en comparación con gzip, generalmente ofrece una mayor tasa de compresión.

tar -cjvf ~/tar-demo/archive.tar.bz2 -C ~/tar-demo sample

Ejecutamos el comando ls -lh ~/tar-demo/*.tar* para comprobar la lista y el tamaño de los archivos empaquetados generados.
Podrá apreciar la diferencia de tamaño entre los archivos con algoritmos de compresión aplicados y el archivo tar simple sin comprimir (archive.tar).

ls -lh ~/tar-demo/.tar

Vista previa del contenido del archivo (-t) y verificación de seguridad

Para comprobar con antelación la estructura de archivos y las rutas de directorios antes de descomprimir, ejecutamos el comando tar -tvf ~/tar-demo/archive.tar.gz.
Al combinar la opción -t con la opción de visualización detallada -v, puede verificar de forma segura los permisos, propietarios, tamaños y la estructura de directorios sin necesidad de descomprimir el archivo realmente.

tar -tvf ~/tar-demo/archive.tar.gz

Extracción segura en una ruta específica (-x y -C)

Para crear un directorio exclusivo donde descomprimir los archivos de manera segura, ejecutamos el comando mkdir -p ~/tar-demo/extracted.

mkdir -p ~/tar-demo/extracted

Utilizando las opciones -x y -C, descomprimimos el archivo en la ruta de destino indicada sin alterar ni ensuciar el directorio de trabajo actual.
Descomprimimos con la opción -z para gzip y observamos en tiempo real la lista de archivos extraídos con la opción -v.

tar -xzvf ~/tar-demo/archive.tar.gz -C ~/tar-demo/extracted

Ejecutamos el comando ls -la ~/tar-demo/extracted/sample para confirmar que los archivos contenidos en el paquete se hayan extraído correctamente en la ruta designada.
A través de la salida, podemos verificar que la propiedad y los permisos de los archivos se han restaurado de forma íntegra, tal y como estaban al momento de su creación.

ls -la ~/tar-demo/extracted/sample

Hemos repasado de forma resumida desde los principios básicos de funcionamiento del comando tar en Linux hasta los ejemplos prácticos de compresión y extracción más utilizados en el día a día.
Aproveche adecuadamente estas opciones clave según cada situación para facilitar la administración y el respaldo de sus archivos en Linux.