Qual é o método de compactação mais rápido para um grande número de arquivos?

12

Eu preciso compactar um diretório com cerca de 350.000 arquivos pequenos que totalizam cerca de 100 GB no total. Estou usando o OSX e atualmente estou usando a ferramenta padrão "Compactar" que converte esse diretório em um arquivo .zip. Existe uma maneira mais rápida de fazer isso?

    
por Spike 19.06.2011 / 06:55

2 respostas

13

Para diretórios eu usaria um tar canalizado para bzip2 com max-compression.

uma maneira simples de ir é

tar cfj archive.tar.bz2 dir-to-be-archived/ 

Isso funciona muito bem se você não pretende buscar pequenos conjuntos de arquivos fora do arquivo
e estamos apenas planejando extrair tudo quando e onde for necessário.
No entanto, se você fizer deseja obter um pequeno conjunto de arquivos, não é muito ruim.

Eu prefiro chamar esses arquivos filename.tar.bz2 e extrair com a opção ' xfj '.

O tubo de compressão máxima é assim,

tar cf - dir-to-be-archived/ | bzip2 -9 - > archive.tar.bz2  
#      ^pipe tarball from here to zip-in^ into the archive file. 

Observação: o método ' bzip2 ' e mais compactação tendem a ser mais lentos que o normal gzip de ' tar cfz '.

Se você tiver uma rede rápida e o arquivo for colocado em uma máquina diferente,
você pode acelerar com um cano na rede (usando efetivamente duas máquinas juntas).

tar cf - dir/ | ssh user@server "bzip2 -9 - > /target-path/archive.tar.bz2"  
#      ^ pipe tarball over network to zip ^ and archive on remote machine.

Algumas referências,

  1. Linux Journal: Ferramentas de compressão comparadas , 28 de julho de 2005
  2. gzip vs. bzip2 , 26 de agosto de 2003
  3. Uma referência rápida: Gzip vs. Bzip2 vs. LZMA , 31 de maio de 2005
por 19.06.2011 / 07:58
6

Esse cara fez algumas pesquisas sobre isso. Parece que o .zip comprimirá arquivos maiores mais rapidamente. No entanto, produz um dos maiores tamanhos de compressão. Também parece que ele estava usando utilitários do Windows, mas aposto que o utilitário do OSX é quase tão otimizado.

Aqui é um excelente site onde vários utilitários de compactação foram comparados para velocidade em muitos arquivos. Existem muitos outros testes nesse site que você pode examinar para determinar o melhor utilitário para você.

Grande parte da velocidade tem a ver com o programa que você usa. Eu usei o utilitário 7zip para o Windows, e acho que isso é muito rápido. No entanto, comprimir muitos arquivos leva muito tempo, não importa o que eu deixaria passar a noite. Ou você poderia simplesmente tarar tudo e não comprimir ... Pessoalmente eu odeio descompactar grandes arquivos, então eu teria cuidado se é isso que você quer fazer.

    
por 19.06.2011 / 07:27