Cómo usar tar para comprimir y descomprimir archivos

Cómo comprimir y descomprimir con tar

Comprimir con tar

Para crear un archivo .tar.gz (comprimido con gzip) que incluya varios directorios, puedes usar el comando tar en Linux/macOS o WSL (Windows Subsystem for Linux). Aquí está la sintaxis básica:

tar -czvf nombre_del_archivo.tar.gz directorio1 directorio2 directorio3 ...

Explicación de los parámetros:

Ejemplo 1: Directorios en la misma ubicación

Si tienes tres directorios (dir1, dir2, dir3) y quieres comprimirlos en un archivo backup.tar.gz:

tar -czvf backup.tar.gz dir1 dir2 dir3

Ejemplo 2: Usar patrones (wildcards)

Si los directorios siguen un patrón (ej: project-2023, project-2024):

tar -czvf proyectos.tar.gz project-*

Ejemplo 3: Directorios en rutas diferentes

Si los directorios están en rutas distintas:

tar -czvf archivo_comprimido.tar.gz /ruta/al/dir1 /otra/ruta/dir2

Verificar el archivo creado

Para listar el contenido del .tar.gz sin descomprimirlo:

tar -tzvf archivo_comprimido.tar.gz

Notas importantes

Ejemplo avanzado (excluyendo un subdirectorio):

tar -czvf backup.tar.gz --exclude="dir1/no_deseado" dir1 dir2

Descomprimir con tar

Para descomprimir un archivo .tar.gz, utiliza el comando tar con los parámetros adecuados. Aquí te explico cómo hacerlo:

Comando básico para descomprimir

tar -xzvf archivo.tar.gz

Explicación de los parámetros:

Ejemplo 1: Descomprimir en el directorio actual

tar -xzvf backup.tar.gz

Esto extraerá todos los archivos y directorios en la ubicación donde estés ejecutando el comando.

Ejemplo 2: Descomprimir en un directorio específico

Si quieres que los archivos se extraigan en una carpeta concreta (ej: ~/documentos/backup):

tar -xzvf backup.tar.gz -C ~/documentos/backup

El parámetro -C indica el directorio de destino.

Ejemplo 3: Listar contenido sin descomprimir

Para ver qué contiene el archivo antes de extraerlo:

tar -tzvf backup.tar.gz

Notas importantes

Otros formatos de compresión:

tar -xjvf archivo.tar.bz2

(usa -j en lugar de -z).

tar -xJvf archivo.tar.xz

¿Y si solo es un .gz (sin .tar)?

Si es un único archivo comprimido con gzip (ej: archivo.txt.gz), descomprime con:

gzip -d archivo.txt.gz