¿Qué es tar?
tar es la abreviatura de 'Tape Archive' (Archivo de Cinta) y fue creado originalmente para hacer copias de seguridad de datos en cintas magnéticas. Hoy en día, se utiliza como una herramienta estándar de Linux para agrupar múltiples archivos y directorios en un solo archivo para facilitar su gestión o transferencia. tar solo agrupa los archivos; la compresión se especifica mediante opciones separadas (-z, -j, -J).
Modos de operación clave
tar opera en un modo principal a la vez (crear, extraer, listar).
- -c (Create): Crea un nuevo archivo.
- -x (Extract): Extrae archivos de un archivo.
- -t (List): Verifica el contenido (lista) de un archivo sin descomprimirlo.
- -f (File): Especifica el 'archivo' de destino. Es esencial para casi todas las operaciones.
Opciones principales (Shell)
tar se usa combinando opciones. Lo más importante es elegir una de `-c`, `-x`, o `-t`.
1. Modo de operación (seleccione uno)
2. Especificar archivo y compresión
3. Destino y funciones adicionales
Comando generado:
Combina los comandos.
Descripción:
`tar` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de escenarios de uso (Shell)
Ejemplos de las combinaciones más frecuentes. (El guion `-` delante de las opciones se puede omitir, pero es mejor especificarlo).
Crear archivo comprimido con gzip (.tar.gz)
tar -cvzf backup.tar.gz /home/user/data
c(crear), v(detallado), z(gzip), f(archivo) + [archivo_resultante] + [destino]
Descomprimir archivo gzip (.tar.gz)
tar -xvzf backup.tar.gz
x(extraer), v(detallado), z(gzip), f(archivo) + [archivo_de_destino]
Ver el contenido de un archivo comprimido (.tar.gz)
tar -tvf backup.tar.gz
t(listar), v(detallado), f(archivo) (tar moderno detecta -z automáticamente)
Descomprimir en un directorio específico
tar -xvzf backup.tar.gz -C /opt/restore
Especifica la ruta con la opción -C.
Crear archivo comprimido con bzip2 (.tar.bz2)
tar -cvjf archive.tar.bz2 ./docs
Usa la opción j(bzip2) en lugar de z.
Descomprimir archivo bzip2 (.tar.bz2)
tar -xvjf archive.tar.bz2
Comprimir excluyendo archivos/directorios específicos
tar -cvzf app.tar.gz ./app --exclude="*.log" --exclude="node_modules"
Usa la opción --exclude. (Se puede usar varias veces)
Instalación
tar está instalado por defecto en casi todas las distribuciones de Linux (y macOS). (Generalmente GNU tar). Si por alguna razón necesita instalarlo, puede hacerlo con el nombre de paquete 'tar'.
Instalado por defecto
Rara vez se necesita una instalación separada. Intente `tar --version` para verificar la versión.
Debian/Ubuntu (si es necesario)
sudo apt update && sudo apt install -y tar
RHEL/CentOS/Fedora (si es necesario)
sudo dnf install -y tar
Consejos y precauciones
Consejos útiles
- Omisión del guion (-): Por una antigua convención, se puede omitir el guion para el primer grupo de opciones, como `tar cvf ...` (por ejemplo: `tar cvf` = `tar -cvf`). Sin embargo, se recomienda usar el guion para mayor claridad.
- Detección automática de compresión: Las versiones modernas de `tar` pueden detectar automáticamente el tipo de compresión basándose en la extensión del archivo, incluso sin las opciones `-z`, `-j` o `-J` al extraer (-x). (Por ejemplo, basta con `tar -xf archive.tar.gz`).
- Preservación de permisos (-p): Al restaurar una copia de seguridad del sistema, es crucial usar la opción `-p` para preservar los permisos y la propiedad originales de los archivos.
- Problemas de ruta (-C): Si desea extraer archivos en una ubicación diferente a la actual, usar la opción `-C /ruta` es mucho más eficiente que mover los archivos después.
- Cuidado con las rutas absolutas: Si agrupa archivos con una ruta absoluta como `/home/user` al crear (-c), al extraer (-x), los archivos se descomprimirán en esa misma ruta absoluta. (Las versiones modernas de tar a veces eliminan el `/` inicial por seguridad). Es más seguro agrupar con rutas relativas, como `cd /home && tar -cvf user.tar ./user`.