GNU/Linux >> Tutoriales Linux >  >> Linux

¿Existe un tar o cpio más inteligente para recuperar de manera eficiente un archivo almacenado en el archivo?

Solución 1:

tar (y cpio, afio, pax y programas similares) son formatos orientados a la transmisión:están destinados a transmitirse directamente a una cinta o canalizarse a otro proceso. aunque, en teoría, sería posible agregar un índice al final del archivo/transmisión, no conozco ninguna versión que lo haga (aunque sería una mejora útil)

no ayudará con sus archivos tar o cpio existentes, pero hay otra herramienta, dar ("archivo de disco"), que crea archivos de almacenamiento que contienen dicho índice y puede brindarle acceso rápido y directo a archivos individuales dentro del archivo. .

si dar no está incluido en su unix/linux-dist, puede encontrarlo en:

http://dar.linux.free.fr/

Solución 2:

Podría usar SquashFS para tales archivos. es

  • diseñado para acceder mediante un controlador de fusibles (aunque existe una interfaz tradicional)
  • comprimido (cuanto mayor sea el tamaño del bloque, más eficiente)
  • incluido en el kernel de Linux
  • almacena UID/GID y tiempo de creación
  • consciente de Endianess, por lo tanto bastante portátil

El único inconveniente que conozco es que es de solo lectura.

http://squashfs.sourceforge.net/http://www.tldp.org/HOWTO/SquashFS-HOWTO/whatis.html

Solución 3:

Si bien no almacena un índice, star se supone que es más rápido que tar . Además, admite nombres de archivo más largos y tiene una mejor compatibilidad con los atributos de archivo.

Como estoy seguro de que sabe, descomprimir el archivo lleva tiempo y probablemente sea un factor en la velocidad de extracción, incluso si hubiera un índice.

Editar: También es posible que desee echar un vistazo a xar . Tiene un encabezado XML que contiene información sobre los archivos en el archivo.

Desde la página referenciada:

El encabezado XML de Xar le permite contener metadatos arbitrarios sobre los archivos contenidos en el archivo. Además de los metadatos de archivos unix estándar, como el tamaño del archivo y sus tiempos de modificación y creación, xar puede almacenar información como bits de archivo ext2fs y hfs, banderas de unix, referencias a atributos extendidos, información de Mac OS X Finder, Mac OS Bifurcaciones de recursos X y hash de los datos del archivo.

Solución 4:

Thorbjørn Ravn Anderser tiene razón. GNU tar crea archivos "buscables" por defecto. Pero no usa esa información cuando lee estos archivos si no se da la opción -n. Con la opción -n, acabo de extraer un archivo de 7 GB de un archivo de 300 GB en el tiempo necesario para leer/escribir 7 GB. Sin -n tomó más de una hora y no produjo ningún resultado.

No estoy seguro de cómo la compresión afecta esto. Mi archivo no estaba comprimido. Los archivos comprimidos no son "buscables" porque el tar GNU actual (1.26) descarga la compresión a un programa externo.

Solución 5:

El único formato de archivo que conozco que almacena un índice es ZIP, porque tuve que reconstruir índices corruptos más de una vez.


Linux
  1. Cómo usar el comando Tar en Linux

  2. Error de alquitrán:EOF inesperado en el archivo

  3. Cómo obtener el tamaño de tar.gz en un archivo (MB) en python

  4. Extraiga tar el error del archivo tar.bz2

  5. ¿Formato de archivo indexado?

dtrx:el extractor de archivos universal para muchos tipos de archivos

Cómo ver el contenido de un archivo o archivo comprimido en Linux

Elija el mejor sistema de archivos para su Linux

¿Cómo agregar/actualizar un archivo a un archivo Tar.gz existente?

Las 8 distribuciones de Linux más populares disponibles en el mercado

Los 15 mejores programas para compartir archivos para escritorio Linux