¿Qué es TAR?
TAR (Tape ARchive) es un formato de empaquetado creado en 1979. TAR en sí no comprime — solo agrupa archivos preservando permisos, propietarios y estructura de directorios.
| Extensión | Compresor | Velocidad | Compresión |
|---|---|---|---|
.tar |
Ninguno | ⚡⚡⚡ | 0% |
.tar.gz |
gzip | ⚡⚡ | Buena |
.tar.bz2 |
bzip2 | ⚡ | Muy buena |
.tar.xz |
xz/LZMA | 🐢 | Excelente |
.tar.zst |
Zstandard | ⚡⚡⚡ | Muy buena |
Crear archivos TAR
tar -cf archivo.tar carpeta/
tar -czf archivo.tar.gz carpeta/
tar -cjf archivo.tar.bz2 carpeta/
tar -cJf archivo.tar.xz carpeta/
# Verbose
tar -czvf archivo.tar.gz carpeta/
# Múltiples directorios
tar -czf backup.tar.gz /home/usuario/ /etc/ /var/www/
Extraer archivos TAR
tar -xzf archivo.tar.gz
tar -xzf archivo.tar.gz -C /ruta/destino/
tar -xf archivo.tar.gz # Detección automática de compresor
tar -xzf archivo.tar.gz ruta/dentro/archivo.txt
Listar contenido
tar -tzf archivo.tar.gz
tar -tjf archivo.tar.bz2
tar -tf archivo.tar
Opciones avanzadas
# Excluir directorios
tar -czf backup.tar.gz /home/ \
--exclude=/home/usuario/.cache \
--exclude=/home/usuario/Downloads
# Archivos modificados en las últimas 24h
find /var/log -mtime -1 | tar -czf logs_hoy.tar.gz -T -
# Backup incremental
tar -czf backup_$(date +%Y%m%d).tar.gz \
--newer-mtime="2024-01-01" /datos/
Script de backup rotativo
#!/bin/bash
BACKUP_DIR="/backups"
SOURCE="/var/www/html"
DATE=$(date +%Y-%m-%d)
ARCHIVO="$BACKUP_DIR/web_$DATE.tar.gz"
tar -czf "$ARCHIVO" \
--exclude="$SOURCE/cache" \
--exclude="$SOURCE/tmp" \
"$SOURCE"
echo "Backup: $ARCHIVO ($(du -sh "$ARCHIVO" | cut -f1))"
find "$BACKUP_DIR" -name "web_*.tar.gz" -mtime +7 -delete
TAR vs ZIP
| Aspecto | TAR + gz/xz | ZIP |
|---|---|---|
| Permisos Unix | ✅ Preserva | ❌ No |
| Compresión sólida | ✅ | ❌ Por archivo |
| Acceso aleatorio | ❌ Secuencial | ✅ |
| Multiplataforma | Linux/macOS | ✅ Universal |
| CI/CD pipelines | ✅ Estándar | Parcial |
Conclusión
TAR con gzip (.tar.gz) es el estándar en Linux/Unix para backups, distribución de software y CI/CD. Preserva permisos, soporta compresión sólida y funciona perfectamente en scripts. Para Windows o usuarios no técnicos, ZIP es más conveniente.
Casos de uso avanzados
Distribución cross-platform: ZIP es universal — Windows, macOS, Linux lo manejan nativamente sin software adicional. RAR ofrece mejor compresión y recovery records pero requiere WinRAR/UnRAR (RAR es propietario). 7Z (formato 7-Zip) ofrece la mejor compresión open-source con LZMA2 ultra. TAR.GZ es estándar Unix/Linux para code distribution (GitHub releases). Backup workflows: backups incrementales prefieren TAR (preserva permisos Unix exactos) + GZ/BZ2/XZ para compresión; ZIP para Windows-centric backup. Para backup encrypted, AES-256 está disponible en ZIP, RAR, 7Z. Code distribution: open-source projects en GitHub releases típicamente proveen ambos formatos — .tar.gz para Unix/Linux/macOS users (preserva permissions y symlinks), .zip para Windows users (más familiar). Large dataset distribution: scientific datasets multi-GB usan formats con sólido recovery (RAR multi-volume con recovery records) para resilience contra corruption durante download/transfer.
Mejores prácticas y consejos profesionales
Compression vs speed trade-off: ZIP-Deflate es rápido pero menos eficiente; 7Z-LZMA2 ultra es 2-3× mejor compresión pero 10× más lento. Para archives accessed frecuentemente, ZIP es better balance; para cold archival storage, 7Z worth the wait. Format selection by content: text content comprime 70-90% (LZMA es ideal); imágenes JPG ya comprimidas, archivos audio MP3, videos MP4 — comprimirlos más es virtualmente inútil (ZIP "stored" mode los empaqueta sin tiempo perdido). Encryption: usa siempre AES-256, no ZIP legacy encryption (rota fácilmente). 7-Zip ofrece AES-256 by default; WinRAR también; ZIP standard tiene weak encryption a menos que uses AES-256 mode (no compatible con todos los unzippers). Splitting: para distribución por canales con limit de tamaño (email 25 MB, WhatsApp 100 MB), usa multi-volume archives (file.7z.001, file.7z.002...) — descomprimir requiere todos los volúmenes presentes. Filename encoding: usa siempre UTF-8 para cross-platform compatibility — caracteres especiales (acentos, ñ, asiáticos) se rompen en archives creados con encoding legacy.
Compatibilidad y consideraciones técnicas
KaijuConverter soporta todos los formatos comunes (ZIP, RAR, 7Z, TAR, GZ, BZ2, XZ, ZSTD, LZH, ARJ legacy) con p7zip 23.x como engine central. Conversión: extraemos el archivo source completo preservando estructura de directorios, file permissions donde aplica, timestamps originales, symbolic links cuando el formato destino los soporta. Re-comprimimos al formato destino con parámetros óptimos (LZMA2 ultra para 7Z, Deflate Level 9 para ZIP, ZSTD-19 para TAR.ZST, BZIP2 -9 para TAR.BZ2). Filename preservation: garantizamos UTF-8 encoding en archives output para evitar corruption de caracteres especiales — crítico para nombres de archivo en chino, ruso, árabe, hebreo, idiomas con diacríticos (español, francés, portugués). Limitaciones: archives password-protected requieren la password durante upload; encrypted archives sin password no se pueden procesar. Multi-volume archives requieren todos los volúmenes presentes. Tamaño: archives hasta 200 MB (compressed); contenido extraído puede ser mayor pero process timeout es 30 minutos. Privacidad: TLS 1.3, Docker aislamiento, eliminación tras 2h con multi-pass overwrite.
Conversiones relacionadas
Conversiones de archivos comprimidos más usadas: