TAR

¿Qué es un archivo TAR?

Agrupa archivos sin comprimirlos. El paso de empaquetado en Unix, casi siempre acompañado de GZ.

Qué es TAR

TAR es un contenedor: una envoltura para flujos que ha codificado otra cosa. Se usa para el archivado y mover datos entre programas.

La extensión es .tar y el nombre completo, Tape Archive. Ambos importan menos que lo que el archivo puede contener, y de eso trata el resto de esta página.

De dónde viene TAR

Se remonta a 1979. La especificación es POSIX.1-2001 ustar.

A un formato que lleva tanto tiempo siendo legible se le puede confiar algo que quieras recuperar dentro de diez años.

La especificación es pública

Está publicada entera, así que cualquiera puede implementarla leyendo el documento en vez de a base de inspeccionar archivos. Por eso aparece en tantos programas, y por eso los archivos escritos hace veinte años siguen abriéndose hoy. Publicada no quiere decir libre de regalías: cuando un formato envuelve un códec, la licencia de las patentes es un asunto aparte que la norma no resuelve.

No se tira nada

TAR guarda su contenido exactamente. Volver a guardarlo no cambia nada, así que puedes abrirlo, editarlo y guardarlo tantas veces como quieras sin acumular daño; eso es lo que lo convierte en un formato de trabajo y no de entrega.

Puede contener una carpeta entera

TAR guarda un directorio: nombres, carpetas y la estructura entre ellos. Eso es lo que le permite sustituir a una carpeta en un adjunto de correo.

Qué hace para protegerse

TAR lleva una suma de verificación, para que un archivo dañado se detecte en vez de leerse mal en silencio.

Una suma de verificación no repara nada. Te dice que el archivo está mal, que es la diferencia entre enterarte ahora y enterarte por la persona a la que se lo enviaste.

Qué abre TAR

tar, 7-Zip y Keka lo leen, y también la mayoría de programas del mismo tipo.

Cuando un archivo no se abre, el formato rara vez es el problema: lo más habitual es que el programa sea anterior al formato. Convertir a algo más antiguo es la salida fiable, y para eso está el resto de este sitio.

Abrirlo en el navegador

Ningún navegador lo lee.

Ese es el motivo más frecuente para convertirlo: no que el formato sea malo, sino que el sitio donde quieres mostrar el archivo no sabe leerlo.

Es un formato de trabajo

TAR está pensado para abrirse y cambiarse. Guarda el archivo en este formato mientras el trabajo siga en marcha y exporta desde él cada vez que haga falta una copia terminada.

Qué sale mal con él

Las quejas recurrentes: los archivos son grandes para lo que contienen.

Nada de esto es motivo para evitar el formato. Son las cosas que conviene conocer antes de que una de ellas te sorprenda, que es una afirmación distinta y más útil.

No comprime nada, y de ahí sale todo lo demás

TAR junta archivos en uno solo. No los hace más pequeños. El nombre viene de archivo de cinta, y se diseñó en 1979 para volcar un árbol de directorios en una cinta magnética como un flujo continuo, un trabajo en el que comprimir era problema de otro y a menudo de la propia unidad de cinta.

Casi todo lo confuso del formato viene de ahí. Un .tar de una carpeta es ligeramente más grande que la carpeta, porque añade una cabecera delante de cada archivo y rellena hasta un tamaño de bloque fijo. Si esperabas un archivo más pequeño, no ha fallado nada: has usado la herramienta que empaqueta y no la que encoge.

Por qué la extensión lleva dos partes

Porque se ejecutaron dos programas. En archivo.tar.gz, tar empaquetó y después gzip comprimió el único archivo resultante. El .tar.bz2 usó bzip2, el .tar.xz usó xz y el .tar.zst usó zstd. La cadena se lee de derecha a izquierda: primero se quita la compresión y luego se deshace el paquete.

Las formas cortas .tgz y .txz significan lo mismo y existen porque algunos sistemas de archivos protestaban ante más de un punto. Esa composición de herramientas pequeñas que hacen una sola cosa es deliberada, y es también la razón de que TAR haya sobrevivido a las cintas para las que se escribió.

Comprimir el paquete gana a comprimir cada archivo

Ese orden es el motivo de que un .tar.gz supere con frecuencia a un ZIP con el mismo contenido. ZIP comprime cada archivo por separado, así que mil archivos de texto parecidos se aprietan cada uno en su burbuja. Empaquetar y después comprimir le entrega al compresor un flujo continuo, y ahí puede encontrar repeticiones que cruzan de un archivo a otro.

Con código fuente, con registros o con cualquier montón de archivos pequeños y parecidos la diferencia es notable. Con una carpeta de fotografías es prácticamente nula, porque los JPEG ya están comprimidos y no hay repetición que encontrar entre ellos. La ventaja es real y es específica de un tipo de contenido.

A cambio, no se puede meter la mano dentro

Ese mismo flujo continuo es la razón de que sacar un archivo suelto de un .tar.gz grande sea lento. No hay índice, y como todo está comprimido de corrido no se pueden calcular de antemano las posiciones, así que llegar a algo que está al final exige descomprimir todo lo anterior.

ZIP hizo el trato contrario. Su índice está al final del contenedor y cada archivo se comprime por su cuenta, de modo que cualquier elemento se extrae al momento. Toda la comparación cabe en una frase: TAR para archivos que se leen de principio a fin, ZIP para archivos en los que se rebusca.

Lo que conserva y que ZIP deja caer

Permisos de Unix, propietario y grupo, enlaces simbólicos y duros, y marcas de tiempo con más precisión de la que registra ZIP. Por eso el software se distribuye en .tar.gz y no en ZIP: al desempaquetar tiene que quedar un árbol donde el ejecutable siga siendo ejecutable y los enlaces sigan apuntando adonde apuntaban.

En Windows la mayor parte de eso no tiene dónde ir y se descarta en silencio. No se rompe nada, pero un .tar.gz desempaquetado en Windows y vuelto a empaquetar ha perdido justo los permisos que el formato existía para llevar, y eso importa si el archivo tiene que volver a un servidor.

Qué compresor elegir y para qué sirve cada uno

gzip es rápido, universal y la opción segura: es lo que produce casi todo y lo que abre todo. xz comprime bastante más y tarda bastante más, lo que encaja con algo que se escribe una vez y se descarga muchas. bzip2 queda en medio y hoy es sobre todo una elección heredada. zstd es el recién llegado y comprime cerca de xz a velocidades cercanas a gzip.

Para un archivo que va dirigido a otra persona, .tar.gz sigue siendo la respuesta correcta, porque el techo lo pone lo que el destinatario pueda abrir y no lo que mejor comprima. Los demás tienen sentido cuando sabes qué hay al otro lado.

Varias versiones del mismo formato que no encajan

El diseño original fijaba los nombres en 100 caracteres y no tenía sitio para archivos grandes ni para rutas largas. Dos extensiones resolvieron eso por separado — la de GNU tar y el formato pax de POSIX — y lo resolvieron de forma distinta, así que un contenedor escrito por una puede desconcertar a un lector estricto que espera la otra.

En la práctica las herramientas modernas leen todas y esto casi nunca aparece. Cuando aparece, el síntoma es reconocible: nombres de archivo truncados, o un error sobre una ruta demasiado larga, en un archivo que por lo demás está perfecto.

Dónde te lo vas a cruzar

En publicaciones de código fuente, en la distribución de software para Linux y macOS, en las capas de las imágenes de Docker, en copias de seguridad de servidor y en los volcados que generan los paneles de hosting y las bases de datos. Si has descargado algo para ejecutarlo en un servidor, es muy probable que llegara así.

Y aparece en Windows más que antes. Windows desempaqueta .tar.gz de forma nativa desde 2023 y trae la orden tar desde 2018, así que la época de necesitar un programa de terceros solo para abrir uno ha quedado atrás.

Cuándo pasarlo a ZIP y cuándo dejarlo en paz

Conviértelo cuando el destino sea una persona y no una máquina: un compañero con Windows, un formulario web, un adjunto de correo. ZIP es el formato que cualquier sistema operativo abre sin pensar, y enviar otra cosa es pedirle al destinatario, en voz baja, que resuelva un problema.

No lo conviertas cuando el archivo vuelve a un sistema Unix. Reempaquetar como ZIP tira los permisos, la propiedad y los enlaces simbólicos que el formato llevaba, y el resultado extraído puede no funcionar. Para una copia de seguridad o para una publicación de código, el .tar.gz no es un obstáculo que rodear: es la razón de que el archivo sirva.

Este es de los pocos casos en que el archivo sí sale de tu equipo

La mayor parte de este sitio convierte dentro del navegador, pero los archivadores no: son 89 de los 528 pares vivos los que se procesan fuera, y todos los de esta familia están entre ellos. El archivo se envía a api.quinvert.com, donde 7-Zip hace el trabajo, con unrar-free al lado porque Debian compila 7-Zip sin el códec de RAR. Por eso RAR se lee y nunca se escribe: es la licencia de UnRAR y no una carencia.

Lo que ocurre allí está acotado. El archivo se escribe en un directorio temporal recién creado y se guarda con el nombre input más su extensión, de modo que el nombre que tú le habías puesto no llega a tocar el disco; ese directorio se borra en un bloque que se ejecuta también cuando la conversión falla. El contenedor no tiene acceso a internet, y el resultado se devuelve con la cabecera que impide que se almacene en caché.

Los límites de la parte que corre en servidor

Como aquí sí hay una máquina que pagamos, las cifras son otras: 25 MB por archivo en lugar de los 100 MB de las conversiones locales, un máximo de 100 conversiones de servidor por visitante y día — la ventana es el día UTC, así que se reinicia a medianoche UTC y no a las 24 horas de la primera — y un tope de ráfaga de 5 peticiones por minuto. La expansión declarada de un archivador está limitada a 2 GiB.

Sobre el tiempo hay una precisión que conviene hacer: el corte de 60 segundos se aplica a cada proceso que se lanza, no a la petición entera. Una conversión entre archivadores encadena varios pasos, así que una petición puede tardar legítimamente más de un minuto sin que nada haya ido mal. Lo que no cambia en ningún caso es el contenido: los archivos salen byte a byte, y lo que no sobrevive es lo que el contenedor sabía sobre ellos y no dentro de ellos — una contraseña y, en algunos formatos, los permisos y las fechas originales.

Los datos, en un solo sitio

Identificadores y procedencia del formato TAR.
Extensión.tar
Tipo de medioapplication/x-tar
Primera publicación1979
EspecificaciónPOSIX.1-2001 ustar