maneira mais rápida de fazer um tar.gz de uma árvore de diretórios?

2

Eu tenho uma árvore de diretórios com arquivos como este:

.
|-- 00
|   |-- 00
|   |   |-- 00
|   |   |-- 01
|   |   |-- 02
|   |   |-- 03
|   |   |-- 04
|   |   |-- 05
[..]
|   |   |-- 97
|   |   |-- 98
|   |   '-- 99
|   |-- 01
|   |   |-- 00
|   |   |-- 01
[...]

Existem cerca de 200 arquivos no final de cada diretório, portanto, muitos arquivos. Qual seria a maneira mais rápida de fazer um tar.gz da coisa toda? Posso paralelizar a tarefa para muitas CPUs?

    
por 719016 27.06.2011 / 23:32

2 respostas

3

Nos sistemas de arquivos ext [234], acho que dump é muito mais rápido que o tar, especialmente com muitos arquivos pequenos, como um Maildir. Ele também usa vários núcleos para compactação simultânea. Eu sugiro usar -b 1024 para um tamanho de bloco de 1mb, que funciona muito melhor do que o tamanho de bloco padrão de 10kb.

    
por 28.06.2011 / 17:13
6

Você só precisa especificar um (ou mais) diretório (s) de nível superior para incluir, e tar irá mergulhar recursivamente em todos os seus filhos e agrupar tudo:

tar cvfz output.tar.gz /path/to/top_folder

(Como @forcefsck observa se o objeto é uma velocidade bruta, você pode deixar a opção v por menos verbosidade no terminal. Ao não repetir todos os arquivos, você economiza um pouco se o tempo de E / S estiver falando com o seu terminal.)

    
por 28.06.2011 / 00:08