Pregunta ¿Cuál es la ventaja de usar 'tar' hoy?


Yo sé eso tar se hizo para los archivos de cinta en el día, pero hoy tenemos formatos de archivo que agregan archivos y realizan la compresión dentro del mismo formato de archivo lógico.

Preguntas:

  • ¿Hay una penalización de rendimiento durante las etapas de agregación / compresión / descompresión para usar tar encapsulado en gzip o bzip2, cuando se compara con el uso de un formato de archivo que agrega y compresión en la misma estructura de datos? Supongamos que el tiempo de ejecución del compresor que se compara es idéntico (por ejemplo, gzip y Deflate son similares).

  • ¿Hay características de tar formato de archivo que otros formatos de archivo, como .7z y .zip ¿no tener?

  • Ya que tar es un formato de archivo tan viejo, y hoy existen formatos de archivo más nuevos, por qué tar (ya sea encapsulado en gzip, bzip2 o incluso el nuevo xz) Sigue siendo tan ampliamente utilizado hoy en GNU / Linux, Android, BSD y otros sistemas operativos UNIX, para las transferencias de archivos, fuente del programa y descargas binarios, e incluso a veces como un formato gestor de paquetes?


206


origen


No estoy de acuerdo con que "pierda el tiempo". Si se refiere al rendimiento, no existe una penalización real por el rendimiento del alquitrán, ya que el formato es muy eficiente. Si te refieres a desperdicios tu tiempo, no veo cómo tar xvzf es mas dificil que 7z -x... - allquixotic
Parece estar lamentando el hecho de que tar no almacene un catálogo al principio, por lo que las herramientas de compresión de GUI que quieran enumerar los contenidos antes de extraer tienen que descomprimir todo el alquitrán solo para listar los contenidos, luego lo descomprimen al extraer . - psusi
@MarcusJ: ¿crees que 7z de alguna manera sabe mágicamente dónde comienza cada archivo en un archivo? Además, los algoritmos de compresión habituales (gzip, bzip2) funcionan con la transmisión del contenido: no es necesario completar el 100% de la primera etapa antes de la siguiente. - progo
También @MarcusJ parece confundir dos cosas diferentes: cuando lo haces tar xvzf, los datos sin comprimir no es escrito en el disco duro en .tar ¡formato! Tienes razón en que si corres gunzip blah.tar.gz y entonces tar xf blah.tar, escribiría los datos en el disco dos veces (una vez como .tar y nuevamente como archivos en el sistema de archivos), pero nadie lo hace de esa manera. los tar xzf usa un Tubería UNIX (básicamente una copia de memoria) para transferir los datos sin comprimir de gzip (o cualquier compresor) a tar, entonces la información es no escrito en el disco en .tar formato. - allquixotic
Una cosa que sé es que tar (especialmente comprimido) se comporta terriblemente cuando se trata de corrupción de datos. Los pequeños datos de redundancia / recuperación agregados por formatos modernos valen oro - PPC


Respuestas:


Parte 1: rendimiento

Aquí hay una comparación de dos flujos de trabajo separados y lo que hacen.

Tienes un archivo en el disco blah.tar.gz que es, digamos, 1 GB de datos comprimidos en gzip que, cuando se descomprime, ocupa 2 GB (por lo que una relación de compresión del 50%).

La forma en que crearía esto, si hiciera el archivo y la compresión por separado, sería:

tar cf blah.tar files ...

Esto daría lugar a blah.tar que es una mera agregación del files ... en forma descomprimida

Entonces harías

gzip blah.tar

Esto leería el contenido de blah.tar desde el disco, comprimirlos a través del algoritmo de compresión gzip, escribir los contenidos en blah.tar.gz, luego desvincula (borra) el archivo blah.tar.

¡Ahora, vamos a descomprimir!

Camino 1

Tienes blah.tar.gz, De una manera u otra.

Decide ejecutar:

gunzip blah.tar.gz

Esta voluntad

  • LEA los contenidos de datos comprimidos de 1 GB de blah.tar.gz.
  • PROCESE los datos comprimidos a través del gzip descompresor en la memoria.
  • A medida que el búfer de memoria se llena con datos de "un bloque", ESCRIBA los datos sin comprimir en el archivo blah.tar en el disco y repita hasta que se lean todos los datos comprimidos.
  • Desvincular (eliminar) el archivo blah.tar.gz.

Ahora tu tienes blah.tar en el disco, que está descomprimido pero contiene uno o más archivos dentro de él, con una sobrecarga de estructura de datos muy baja. El tamaño del archivo es probablemente un par de bytes más grande que la suma de todos los datos del archivo.

Tu corres:

tar xvf blah.tar

Esta voluntad

  • LEA los 2 GB de contenido de datos sin comprimir de blah.tar y el tar estructuras de datos de formato de archivo, incluida información sobre permisos de archivos, nombres de archivos, directorios, etc.
  • ESCRIBA los 2 GB de datos más los metadatos en el disco. Esto implica: traducir la estructura de datos / información de metadatos para crear nuevos archivos y directorios en el disco, según corresponda, o reescribir los archivos y directorios existentes con nuevos contenidos de datos.

La información total que LEER desde el disco en este proceso fue de 1 GB (para gunzip) + 2 GB (para tar) = 3 GB.

La información total que ESCRIBIR en el disco en este proceso fue de 2 GB (para gunzip) + 2 GB (para tar) + unos pocos bytes para metadatos = aproximadamente 4 GB.

Camino 2

Tienes blah.tar.gz, De una manera u otra.

Decide ejecutar:

tar xvzf blah.tar.gz

Esta voluntad

  • LEA los contenidos de datos comprimidos de 1 GB de blah.tar.gz, un bloque a la vez, en la memoria.
  • PROCESE los datos comprimidos a través del gzip descompresor en la memoria.
  • A medida que el búfer de memoria se llena, lo hará tubo esos datos, en la memoria, a través de tar analizador de formato de archivo, que leerá la información sobre metadatos, etc. y los datos del archivo descomprimido.
  • A medida que el búfer de memoria se llena en el tar analizador de archivos, ESCRIBIRÁ los datos descomprimidos en el disco, creando archivos y directorios y llenándolos con los contenidos sin comprimir.

La información total que LEER desde el disco en este proceso fue de 1 GB de datos comprimidos, punto.

La información total que ESCRIBIR en el disco en este proceso había 2 GB de datos sin comprimir + unos pocos bytes para los metadatos = alrededor de 2 GB.

Si nota, la cantidad de E / S de disco en Camino 2 es idéntico a la E / S de disco realizada por, digamos, el Zip o 7-Zip programas, ajustando por cualquier diferencia en la relación de compresión.

Y si la relación de compresión es su preocupación, use la Xz compresor para encapsular tar, y tu tienes LZMA2'ed Archivo TAR, que es tan eficiente como el algoritmo más avanzado disponible para 7-Zip :-)

Parte 2: características

tar almacena los permisos de Unix dentro de sus metadatos de archivos, y es muy conocido y probado para empaquetar con éxito un directorio con todo tipo de permisos diferentes, enlaces simbólicos, etc. Hay más de unas pocas instancias en las que uno podría necesitar agrupar un montón de archivos en un solo archivo o secuencia, pero no necesariamente comprimirlo (aunque la compresión es útil y se usa con frecuencia).

Parte 3: Compatibilidad

Muchas herramientas se distribuyen en formato fuente o binario como .tar.gz o .tar.bz2, porque es un formato de "denominador común más bajo": al igual que la mayoría de los usuarios de Windows tienen acceso a los descompresores .zip o .rar, la mayoría de las instalaciones de Linux , incluso los más básicos, tendrán acceso al menos al alquitrán y al gunzip, sin importar qué tan antiguos o reducidos sean. Incluso los firmwares de Android tienen acceso a estas herramientas.

Los nuevos proyectos dirigidos a audiencias que ejecutan distribuciones modernas pueden muy bien distribuirse en un formato más moderno, como .tar.xz (utilizando el formato de compresión Xz (LZMA), que se comprime mejor que gzip o bzip2), o .7z, que es similar a el ZIP o RAR formatos de archivo, ya que comprime y especifica un diseño para encapsular múltiples archivos en un solo archivo.

No se ve .7z se usa con más frecuencia por la misma razón que la música no se vende en tiendas de descarga en línea en formatos nuevos como Opuso video en WebM. Compatibilidad con personas que ejecutan sistemas antiguos o muy básicos.


173



Felicitaciones por la excelente respuesta con todo el contenido separado en tres encabezados distintos. - JFW
La "Parte 3: Compatibilidad" parece haber sido copiada de la respuesta de @Kruug. - titaniumdecoy
@titaniumdecoy ¿Has notado que era alcixótico quien originalmente escribió esa parte y la editó en la respuesta de Kruug? - slhck
Gracias por señalar eso, no me di cuenta. Sin embargo, me parece un poco tonto tener un bloque de texto idéntico en dos respuestas diferentes en esta página. - titaniumdecoy
Esto responde por qué tar encaja en el ecosistema de archivo (es decir, para agregar archivos juntos, proporcionar un aumento de rendimiento y algunos otros beneficios como el ahorro de permisos), pero no aborda por qué las alternativas modernas como dar no se usan en su lugar. En otras palabras, esta respuesta justifica el uso de agregadores de archivos, pero no del tar software en sí mismo. - gaborous


Esta ha sido respondido en Stack Overflow.

bzip y gzip funcionan en archivos individuales, no en grupos de archivos. El antiguo zip simple (y pkzip) opera en grupos de archivos y tiene incorporado el concepto de archivo.

La filosofía * nix es una de las herramientas pequeñas que realizan trabajos específicos muy bien y pueden encadenarse entre sí. Es por eso que aquí hay dos herramientas que tienen tareas específicas, y están diseñadas para encajar bien. También significa que puede usar tar para agrupar archivos y luego tiene la opción de herramienta de compresión (bzip, gzip, etc.).

Muchas herramientas se distribuyen en formato fuente o binario como .tar.gz o .tar.bz2, porque es un formato de "denominador común más bajo": al igual que la mayoría de los usuarios de Windows tienen acceso a los descompresores .zip o .rar, la mayoría de las instalaciones de Linux , incluso los más básicos, tendrán acceso al menos tar y gunzip, no importa qué tan viejo o reducido. Incluso los firmwares de Android tienen acceso a estas herramientas.

Los nuevos proyectos dirigidos a audiencias que ejecutan distribuciones modernas pueden muy bien distribuirse en un formato más moderno, como .tar.xz (usando el Xz (LZMA) formato de compresión, que se comprime mejor que gzip o bzip2), o .7z, que es similar al cremallera o RAR formatos de archivo, ya que comprime y especifica un diseño para encapsular múltiples archivos en un solo archivo.

No se ve .7z se usa con más frecuencia por la misma razón que la música no se vende en tiendas de descarga en línea en formatos nuevos como Opuso video en WebM. La compatibilidad con personas que ejecutan sistemas antiguos o muy básicos es importante.


100



Hola @Kruug, edité tu publicación solo para dar una perspectiva práctica de por qué las personas aún escoger para usar estos formatos cuando tienen la opción de usar algo diferente. No cambié el texto que ya tenías. Esto es solo para asegurar que lo que parece ser la respuesta canónica a esta pregunta tenga una imagen completa. Siéntete libre de editar mi edición si quieres :) - allquixotic
@allquixotic inicio a nadie? Edite la edición y edición para poder editar una edición ... - SnakeDoc
Esta respuesta es definitivamente un caso de "a veces me sorprenden los upvotes inmerecidos". No aborda la cuestión central de la pregunta que es con la lista de los contenidos de tar comprimido y ni siquiera es una respuesta original! - Ярослав Рахматуллин
-1 por gran justicia. esto debería haber sido un comentario. - wim
No compro el argumento del legado / denominador común más bajo; Recuerdo que en sistemas nuevos (sol) con frecuencia tuve que descargar gzip / gunzip (de sunfreeware) solo para instalar otro software empaquetado tar.gz (más gnu tar, ya que el alquitrán del sol es succión). Para el denominador heredado / inferior común, tenías tar.Z (comprimir / descomprimir). La progresión de las utilidades ha sido un flujo constante (sin juego de palabras) de cambio y mejora: Z => zip => gz => bz2 => 7z => xz (o el orden que prefiera). En cuanto a la función de tar, algunas utilidades solo se comprimen y todavía requieren tar para agrupar las jerarquías de archivos. - michael


Tar tiene un amplio conjunto de operaciones y modificadores que lo saben todo sobre los sistemas de archivos Unix. Conoce los permisos de Unix, los diferentes tiempos asociados con los archivos, los enlaces duros, los softlinks (y la posibilidad de que los enlaces simbólicos puedan introducir ciclos en el gráfico del sistema de archivos), y le permite especificar diferentes formas de administrar todos estos datos .

  • ¿Desea que la información extraída preserve los tiempos de acceso a los archivos? Tar puede hacer eso. Para preservar los permisos? Tar puede hacer eso.

  • ¿Desea preservar los enlaces simbólicos como enlaces simbólicos? Tar lo hace por defecto. ¿Quieres copiar el objetivo en su lugar? Tar puede hacer eso.

  • ¿Desea asegurarse de que los datos enlazados se almacenen solo una vez (es decir, que se haga lo correcto)? Tar hace eso.

  • ¿Desea manejar bien los archivos dispersos? Tar puede hacer eso.

  • ¿Desea datos sin comprimir (¿por qué?)? Tar puede hacer eso. Para comprimir con gzip? Tar puede hacer eso. Con bzip2? Tar puede hacer eso. ¿Con programas de compresión externos arbitrarios? Tar puede hacer eso.

  • ¿Desea escribir o recuperar desde / hacia un dispositivo sin formato? El formato de Tar maneja bien.

  • ¿Desea agregar archivos a un archivo existente? Tar puede hacer eso. ¿Para diferir dos archivos para ver qué cambió? Tar puede hacer eso. ¿Para actualizar solo aquellas partes del archivo que han cambiado? Tar puede hacer eso.

  • ¿Desea asegurarse de no archivar en más de un sistema de archivos? Tar puede hacer eso.

  • ¿Desea capturar solo los archivos que son más nuevos que su última copia de seguridad? Tar puede hacer eso.

  • ¿Desea conservar los nombres y números de usuarios y grupos? Tar puede hacer cualquiera de los dos.

  • ¿Necesita preservar los nodos del dispositivo (como los archivos de /dev) para que después de la extracción, el sistema se ejecute correctamente? Tar puede hacer eso.

Tar ha estado evolucionando para manejar muchos casos de uso durante décadas y realmente lo sabe mucho sobre las cosas que la gente quiere hacer con los sistemas de archivos Unix.


61



No necesita GNU tar para usar un compresor arbitrario: simplemente diga tar para escribir el archivo en stdout con f - y piégalo al compresor. - Ilmari Karonen
"¿Desea datos sin comprimir (¿por qué?)?" yo suelo tar muy a menudo para copiar un árbol del sistema de archivos de un lugar a otro y preservar los permisos, etc., y la compresión en este caso solo requiere ciclos extra de CPU. P.ej. tar cf - * | tar xf - -C /somewhere. - Steve
Además, querrá un archivo .tar cuando el sistema de archivos de destino realice la deduplicación. La creación de archivos comprimidos en un sistema de archivos que realiza una deduplicación reducirá sustancialmente la relación de deducción. Ejemplo: una vez borramos un archivo tar.gz de $ 10,000.00; es decir, estaba ocupando un valor de $ 10k en espacio de almacenamiento porque alguien usó la compresión. - Aaron
Los ciclos de CPU @Steve pueden ser más económicos que el disco IO para algoritmos como LZ4 o LZO. Es por eso que se usan en zram y en sistemas de archivos de compresión transparentes como NTFS, ZFS, Btrfs ... por lo que a veces es más rápido que comprimir, ya que la cantidad de IO del disco se reduce mucho. - phuclv


Usted confunde los dos procesos distintos de archivo y compresión.

Razones para usar un archivador

Una razón para usar el archivo sin compresión es, por ejemplo, si un grupo de archivos se copia de un host a otro. Un comando como el siguiente

tar cf - some_directory | ssh host "(cd ~/somewhere | tar xf -)"

puede acelerar las cosas considerablemente. Si sé que los archivos no pueden ser comprimido o si SSH está configurado con compresión, puede ahorrar una cantidad considerable de CPU hora. Claro, uno puede usar una herramienta de compresión más moderna con una función de archivo y apaga la compresión. La ventaja de tar es que puedo esperarlo estar disponible en todos los sistemas

Razones para usar un archivador con compresión gzip

Una razón por la que uso tar con gzip es: ¡velocidad! Si deseo transferir unos cuantos GiB de archivos de texto de un lugar a otro, no me importa exprimir los últimos bytes, ya que la compresión es solo utilizado para el tránsito, no para el almacenamiento a largo plazo. En esos casos yo uso gzip, que no maximiza la CPU (en contraste con 7-Zip, por ejemplo), que significa que soy E / S obligado de nuevo y no vinculado a la CPU. Y otra vez: gzip puede ser considerado disponible en todas partes.

Razones para usar tar en favor de scp, rsync, etc.

Late scp si tiene muchos archivos pequeños para copiar (por ejemplo, un directorio de correo con cientos de miles de archivos). rsync, increíble como es, podría no estar disponible en todas partes. Promover, rsync solo realmente vale la pena si parte de los archivos, o una versión anterior, ya está presente en el destino. Para la copia inicial tar es el más rápido, con compresión o sin, dependiendo de los datos reales.


28



Pero si vas a archivar, ¿por qué no comprimir también? De acuerdo, sí puede ahorrar tiempo para archivos que no se comprimen fácilmente, pero los archivadores probablemente deberían saber que la música, por ejemplo, no es muy compresible, a excepción de los encabezados. - MarcusJ
Es posible que no lo necesite o que su contenido no sea compresible. - Hasturkun
Por motivos de rendimiento, a menudo es más fácil utilizar la agregación de archivos sin comprimir cuando se envían datos a través de enlaces de red de ancho de banda muy superior a la velocidad a la que el compresor puede comprimir datos. Esto se puede lograr, por ejemplo, con Gigabit Ethernet; solo unos pocos algoritmos de compresión bien diseñados, que también tienen una relación de compresión muy baja, pueden comprimir datos tan rápido incluso en una gran CPU de escritorio. En un dispositivo integrado, tiene incluso menos tiempo de CPU para trabajar. - allquixotic
no solo está acelerando las cosas, sino que también permite preservar la propiedad del archivo, las marcas de tiempo y los atributos (si los privilegios del usuario lo permiten) - Andre Holzner
@AndreHolzner Correcto. A menudo hago tar cf - . | (cd ~/somewhere; tar xvf -). Es realmente útil no tener que esperar hasta que se escriba el índice central (como por ejemplo en un archivo zip). - user239558


Agregando a las otras buenas respuestas aquí, prefiero la combinación tar + gzip|bzip2|xz principalmente porque estos archivos comprimidos son como secuencias y puede canalizarlos fácilmente.

Necesito descomprimir un archivo disponible en Internet. Con cualquiera zip o rar Tengo que descargarlo primero y luego descomprimirlo. Con tar.{gz,bz2,xz} Puedo descargar y descomprimir en el mismo paso, sin necesidad de tener el archivo comprimido físicamente en el disco:

curl -s http://example.com/some_compressed_file.tar.gz | tar zx

Esto dejará solo los archivos descomprimidos en mi disco, y acelerará todo el proceso, porque no estoy perdiendo tiempo antes de descargar todo el archivo y una vez que la descarga termina, lo descomprimo. En cambio, lo estoy descomprimiendo mientras se descarga. No puedes hacer esto con zip o rar archivos.


24



No sé sobre rar (es un programa terrible que solo parece haberse vuelto popular entre los piratas debido a su capacidad para dividirse en varios archivos más pequeños), pero puedes transmitir zip perfectamente bien. La página man incluso lo menciona. También tiene la ventaja de poder extraer o actualizar archivos desde el medio de un archivo grande de manera eficiente, aunque el alquitrán tiende a obtener una compresión ligeramente mejor. La compresión frente al acceso aleatorio es una compensación. - psusi
@psusi incorrecto. Puedes hacer hacks como esta, pero lo que hace es descargar todo el archivo en la memoria y luego descomprimirlo, en lugar de descomprimir durante la descarga. Y funzip simplemente extrae el primer archivo en el archivo zip, no todos. - Carlos Campderrós
@Stu solo para aclarar, no es un problema, solo está optimizando tu tiempo (no me importa el espacio si eso es lo que pensabas) - Carlos Campderrós
Ambas partes funcionan: también puedes atacar por un lado y untar por el otro: tar zc /some/folder | ssh user@host "cd /other/folder && tar zx" - Carlos Campderrós
@psusi como recuerdo desde tiempos remotos cuando usaba pkzip para almacenar archivos en múltiples disquetes, zip store catalog al final del archivo. Siempre solicita el último disquete para comenzar la extracción o mostrar el catálogo. Asi que en.wikipedia.org/wiki/File:ZIP-64_Internal_Layout.svg - Mikhail Moskalev


Hay varias razones para quedarse con Tar (GNU).

Es:

  • Licencia GPL
  • bueno en el sentido de la filosofía de Unix
    • herramienta de propósito único, capaz de hacer varias tareas
  • bien documentado y tiene muchas características de confianza
  • compatible con varios algoritmos de compresión
  • fácil de usar y las personas han desarrollado hábitos con ella
  • ampliamente disponible
  • Me siento cálido y borroso por dentro cuando uso el software iniciado por RMS (Excluyendo Emacs)

Si su carne de vacuno particular es tener que "descomprimir" un tarball antes de poder leer el contenido, entonces probablemente tenga razón. WinRAR y 7-Zip hazlo automáticamente Sin embargo, existen soluciones simples para este problema, como la documentación del contenido de un archivo comprimido sin comprimir.


13



Es software libre. Muchos de ellos. Es bueno en lo que hace. Difícilmente comparado con otras cosas Está bien documentado y tiene muchas características. Las características apenas se usan y detestablemente son fáciles de usar. Es compatible con varios algoritmos de compresión - No tantos como algunos otros - Griffin
los dioses de Unix lo crearon, ¡por lo tanto, debemos usarlo! - SnakeDoc
Tar también almacena permisos de UNIX de forma nativa, y es muy conocido y probado. Hay más de unas pocas instancias en las que uno podría necesitar agrupar un grupo de archivos en un solo archivo o secuencia, pero no necesariamente comprimirlo. - LawrenceC
Afortunadamente, tar no está limitado solo a las versiones de GNU. Si bien GNU tar es sin duda una buena pieza de software, las interfaces frontales libarchive + son mucho más rápidas y fáciles de integrar en otros proyectos de software. Puede hacer un argumento para tar sin convertirlo en una pelea de licencia. - Lucas Holt
No soy sarcástico. Me gusta RMS y la forma en que lleva a cabo sus creencias. - Ярослав Рахматуллин


Formatos de archivo como .zip exigir el software para leer el final del archivo primero, para leer un catálogo de nombres de archivos. Por el contrario, tar almacena esa información con la corriente comprimida.

La ventaja del método tar es que puede descomprimir datos mientras los lee desde un conducto no buscable, como un enchufe de red.

La ventaja de la vía zip es que, para un archivo estático en el disco, puede navegar por los contenidos y metadatos sin descomprimir todo el archivo primero.

Ambos tienen sus usos, dependiendo de lo que estés haciendo.


11



No, puede leer y escribir archivos zip como una transmisión desde y hacia una tubería. - Mark Adler
Eso puede ser específico de la implementación entonces, ciertamente no es compatible con el pkzip original. - xorsyst
Sí, el software debe escribirse para soportarlo. El formato zip lo admite por completo, con descriptores de datos que pueden seguir los datos comprimidos con las longitudes y CRC. - Mark Adler
@MarkAdler, ¿qué software? Infozip no es compatible con la descompresión de un tubo. - psusi
zlib.net/sunzip033.c.gz - Mark Adler


Parece haber cierta reticencia a responder todas sus preguntas directamente, con una aparente preferencia por utilizar su pregunta como un punto de partida para la pontificación. Así que lo intentaré.

¿Hay una penalización de rendimiento durante el   etapas de agregación / compresión / descompresión para el uso de alquitrán   encapsulado en gzip o bzip2, en comparación con el uso de un formato de archivo   que hace agregación y compresión en la misma estructura de datos?   Supongamos que el tiempo de ejecución del compresor que se compara es idéntico (p.   gzip y Deflate son similares).

No. De hecho, dado que tar y gzip generalmente son dos procesos, incluso se obtiene una pizca de beneficio de velocidad de núcleos múltiples que un archivador como el zip de Info-ZIP no proporciona. En términos de relación de compresión, tar + gzip usualmente será sensiblemente mejor que zip con deflate ya que el primero se puede beneficiar de la correlación entre archivos, mientras que el último comprime los archivos por separado. Ese beneficio de compresión se traduce en un beneficio de velocidad al extraer, ya que un archivo comprimido se descomprime en menos tiempo.

¿Hay características del formato de archivo tar que otros formatos de archivo,   como .7z y .zip no tienen?

Sí, tar fue diseñado para Unix y ha evolucionado a lo largo de los años para poder grabar y restaurar exactamente cada pequeño y extraño rincón de los sistemas de archivos Unix, incluso el sistema de archivos Unix más Mac OS X. zip es capaz de retener gran parte de los metadatos, como permisos, tiempos, propietarios, grupos y enlaces simbólicos, pero aún no todo. Como ejemplo, ni zip ni 7z pueden reconocer o aprovechar los archivos dispersos, ni conocen ni pueden restaurar los enlaces duros.

Dado que tar es un formato de archivo tan viejo, y existen formatos de archivo más nuevos   hoy, ¿por qué el alquitrán (ya sea encapsulado en gzip, bzip2 o incluso en el nuevo   xz) todavía tan ampliamente utilizado en la actualidad en GNU / Linux, Android, BSD y otros   tales sistemas operativos UNIX, para transferencias de archivos, fuente de programa y   descargas binarias, y a veces incluso como un formato de administrador de paquetes?

Muchas otras buenas respuestas aquí para eso. Lo mejor es eso solo funciona, y puede seguir actualizándolo a mejores formatos de compresión (por ejemplo, xz) y seguir usando el mismo formato de tar e incluso la misma utilidad de tar compilada. Si solo quiere empacar un montón de cosas y luego descomprimirlas en el otro extremo, entonces hay pocas razones para usar otra cosa que no sea una de las piezas de software más antiguas, completas y depuradas que existen.

Si quieres acceso aleatorio, actualizaciones parciales u otras cosas que necesiten tratar los contenidos por partes, o si deseas saber qué hay en él sin leer todo, entonces querrás utilizar un formato diferente.


11



CW representa Wiki de la comunidad. Ver también ¿Qué son las publicaciones de "Wiki comunitario"?. - ctype.h
Supongo que es CW porque la pregunta tiene más de 15 respuestas. Cuando publicó esta respuesta, porque es el día 15, la pregunta y todas las respuestas fueron marcadas CW. - ctype.h
No veo cómo esta respuesta dice algo que ninguna de las otras respuestas, aparte de citar directamente las preguntas (que escribí, por cierto, porque la revisión original de la pregunta era lo suficientemente horrible como para ser cerrada como NARQ). Buen intento sin embargo. - allquixotic
Um, está bien. Lo que sea que quieras pensar está bien. Su respuesta, o cualquier otra respuesta, parece abordar si existe una penalización de rendimiento. Su respuesta no aborda la notable diferencia de compresión, aunque otros sí lo hacen. Dado que el suyo en realidad no aborda el rendimiento (su sección de rendimiento es realmente sobre el flujo de trabajo, nada sobre el rendimiento), ninguna otra respuesta responde a todo en un solo lugar. Es interesante que hayas escrito la pregunta sobre la pena de rendimiento, ¡pero no respondiste! Imagínate. - Mark Adler
Por cierto, su discusión del flujo de trabajo se trata de algo que nadie hace, que es escribir un archivo tar en un disco y luego comprimirlo. tar siempre se utiliza llamando directamente al programa de compresión o directamente a un canal a un programa de compresión. - Mark Adler