¿Tar realmente comprime archivos o simplemente los agrupa?

Por lo general, asumí que tar era una utilidad de compresión, pero no estoy seguro de si realmente comprime archivos, ¿O es simplemente como un archivo ISO, un archivo para contener archivos?

Comentarios

Respuesta

Tar es una herramienta de archivo (Tape ARchive), solo recopila archivos y sus metadatos juntos y produce un archivo. Si desea comprimir ese archivo más tarde, puede usar gzip / bzip2 / xz. Para mayor comodidad, tar proporciona argumentos para comprimir el archivo automáticamente. Consulte la página de manual de tar para obtener más detalles.

Comentarios

  • Un ligero aclaración sobre la respuesta. Es GNU tar el que proporciona esos argumentos de compresión adicionales. Por ejemplo, Solaris tar no proporciona argumentos para la compresión.
  • oooh, esa ' es la razón por la que sigo viendo thing.tar.7z
  • BSD tar también proporciona un argumento para la compresión, aunque solo acepta z y determina el método de compresión basado en la extensión, mientras que GNU tar tiene una zZjJ argumentos para los diferentes métodos de compresión.
  • Simplemente lea la página de manual de BSD tar, y resulta que estaba equivocado, BSD tar usa zZjJ para compresión como GNU tar. Sin embargo, detecta automáticamente la compresión al descomprimir, mientras que GNU tar espera zZjJ y luego también.
  • @wingedsubmariner: no; Las versiones modernas de GNU tar se descomprimen automáticamente sin requerir las opciones -zZjJ.

Respuesta

tar produce archivos; la compresión es una funcionalidad separada. Sin embargo tar por sí solo puede reducir el uso de espacio cuando se usa en una gran cantidad de archivos pequeños que son más pequeños que el tamaño del clúster del sistema de archivos. Si un sistema de archivos usa 1kb clústeres, incluso un archivo que contiene un solo byte consumirá 1 kb (más un inodo). Un archivo tar no tiene esta sobrecarga.

Por cierto, una ISO El archivo no es realmente «un archivo para almacenar archivos» – es en realidad una imagen de un sistema de archivos completo (uno originalmente diseñado para ser usado en CD) y por lo tanto su estructura es considerablemente más compleja.

Comentarios

  • En realidad, un archivo vacío no consumirá 1kb. Un archivo de 1-1023 bytes lo hará.
  • @psusi, por lo que para un archivo de bytes 1-1023 consumirá 1024 siempre, lo que da como resultado un desperdicio de 1023-1 bytes.

Respuesta

El comando tar original de UNIX no comprimía los archivos. Como se mencionó en un comentario, Solaris tar no se comprime. Tampoco HP-UX, ni AIX, FWIW. Por convención, los archivos sin comprimir terminan en .tar.

Con GNU / Linux obtienes GNU tar. (Puedes instalar GNU tar en otros sistemas UNIX). Por defecto no se comprime; sin embargo, comprime el archivo resultante con gzip (también por GNU) si proporciona -z. El sufijo convencional para archivos comprimidos con gzip es .gz, por lo que a menudo verá tarballs (jerga de un tar archivo, que generalmente implica que se ha comprimido) que terminan en .tar.gz. Esa terminación implica que se ejecutó tar, seguido de gzip, por ejemplo, tar cf - .|gzip -9v > archive.tar.gz . También encontrará archivos que terminan en .tgz, p. Ej. tar czf archive.tgz ..

Editar: www.linfo.org/tar.html me recordó que GNU tar soporta mucha más funcionalidad que simplemente comprimir con gzip, y me recordó que los sufijos son más que simples convenciones. Tienen semántica incorporada. También es compatible con bzip2 (-j para .bz2) y la compresión anterior (-Z para .Z). Luego miré la página del manual y recordé que -a mapea automáticamente el método de compresión deseado basado en el sufijo.

Otro nit. Como dice la página de manual de tar de Linux, GNU produce páginas de información, no páginas de manual, así que para aprender todo sobre tar de GNU, ejecute info tar.

Comentarios

  • El tar de GNU todavía no ' t maneja las compresiones por sí mismo, solo canaliza hacia / desde gzip, bzip2, compress y otros.
  • Eché un vistazo a la fuente . ¡GNU tar maneja la compresión! La implementación aprovecha la reutilización de código y los principios arquitectónicos sólidos del espacio de usuario de UNIX. " Sólo tuberías " está subestimando la forma en que la compresión está estrechamente integrada en la herramienta.El hecho de que suceda con los programas de ayuda de fork es un tecnicismo. Si desea defender " solo las tuberías, ", cite los nombres de los archivos y los números de línea y deje ' s ve de qué lado toma la comunidad.
  • Pasan algunos días antes de que pueda verificar esa fuente.

Responder

La utilidad tar no se comprime hasta que usted da un argumento para hacerlo [tar -z nombre de archivo].

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *