O formato Zip compacta cada arquivo separadamente e os combina (com um diretório de conteúdo do arquivo) em um único arquivo.
Eu preciso criar arquivos compactados de arquivos e poder extrair rapidamente arquivos / diretórios individuais deles.
O problema é que, 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 (50000 arquivos) leva 17 segundos na minha máquina.
Existe algum formato de arquivo, que fornece rápida exportação de arquivos individuais do arquivo (e funciona no linux)?
Além do formato zip já mencionado, os utilitários dar
e dump
também são bons em lidar com isso e, ao contrário do zip, retêm as permissões do unix. Para dar
você deseja evitar usar a opção de archive sólido, já que volta para o método tar / gzip de compactar tudo de uma vez, o que dá melhor compactação, mas faz com que a extração de arquivos individuais demore mais tempo descompactado até que o arquivo desejado seja encontrado. dump
manipula grandes conjuntos de arquivos pequenos (dezenas de milhares) muito bem, e pode fazer compressão multithread, mas só lê sistemas de arquivos ext [234].
.tar.gz
tem uma velocidade de descompactação mais rápida, mas o trade-off é o pior tamanho de compactação.
edit: Ignacio Vazquez-Abrams me ninja.