Formato de arquivo indexado?

Formato de arquivo indexado?

Preciso criar arquivos compactados de arquivos e poder extrair rapidamente arquivos/diretórios individuais deles.

O problema é, por exemplo, tar.bz2 parece não ser a melhor escolha para tal tarefa - extrair um único arquivo de 4kb de um arquivo de 200Mb (50.000 arquivos) leva 17 segundos na minha máquina.

Existe algum formato de arquivo que forneça exportação rápida de arquivos individuais do arquivo (e funcione no Linux)?

Responder1

pixzé uma versão paralela de indexação 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

Responder2

O formato Zip compacta cada arquivo separadamente e depois os combina (com um diretório de conteúdo do arquivo) em um único arquivo.

Responder3

Além do formato zip já mencionado, os utilitários dare dumptambém são bons para lidar com isso e, diferentemente do zip, retêm as permissões unix. Pois darvocê deseja evitar o uso da opção de arquivo sólido, pois isso remete ao método tar/gzip de compactar tudo de uma vez, o que oferece melhor compactação, mas faz com que a extração de arquivos individuais demore mais, pois o arquivo inteiro deve ser descompactado até o arquivo desejado é encontrado. dumplida muito bem com grandes conjuntos de arquivos pequenos (dezenas de milhares) e pode fazer compactação multithread, mas lê apenas sistemas de arquivos ext[234].

Responder4

.tar.gztem uma velocidade de descompressão mais rápida, mas a desvantagem é o pior tamanho de compressão. editar: Ignacio Vazquez-Abrams me ninja.

informação relacionada