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.