¿Formato de archivo indexado?

¿Formato de archivo indexado?

Necesito crear archivos comprimidos y poder extraer rápidamente archivos/directorios individuales de ellos.

El problema es, por ejemplo, que tar.bz2 no parece ser la mejor opción para dicha tarea: extraer un solo archivo de 4 kb de un archivo de 200 Mb (50000 archivos) lleva 17 segundos en mi máquina.

¿Existe algún formato de archivo que proporcione una exportación rápida de archivos individuales desde el archivo (y funcione en Linux)?

Respuesta1

pixzes una versión de indexación paralela de xz.

# Compress:
tar -I pixz -cf foo.tar.xz ./foo

# Decompress:
tar -I pixz -xf foo.tar.xz

# Very quickly list the contents of the compressed tarball:
pixz -l foo.tar.xz

# Very quickly extract a single file:
pixz -x dir/file < foo.tar.xz | tar x

Respuesta2

El formato Zip comprime cada archivo por separado y luego los combina (con un directorio de contenido del archivo) en un único archivo.

Respuesta3

Además del formato zip ya mencionado, las utilidades dary dumptambién son buenas para manejar esto y, a diferencia de zip, conservan los permisos de Unix. Porque dardesea evitar el uso de la opción de archivo sólido, ya que se remonta al método tar/gzip de comprimir todo a la vez, lo que proporciona una mejor compresión, pero hace que la extracción de archivos individuales lleve más tiempo ya que se debe descomprimir todo el archivo hasta que se complete el proceso. se encuentra el archivo deseado. dumpmaneja bastante bien grandes conjuntos de archivos pequeños (decenas de miles) y puede realizar compresión multiproceso, pero solo lee sistemas de archivos ext[234].

Respuesta4

.tar.gztiene una velocidad de descompresión más rápida, pero la compensación es el peor tamaño de compresión. Editar: Ignacio Vázquez-Abrams me hizo ninja.

información relacionada