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 atar“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ón | Formato deseado | Comando |
|---|---|---|
| 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/ |
| Descomprimir | Cualquiera de arriba | tar -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.