Eu tenho um arquivo bastante grande (~ 50 GB) e leva algum tempo para ser executado
tar xvf file.tar.bz2
nele. Estou ciente de programas que podem fazer compactação paralela para arquivos bzip2, mas não conheço programas que podem fazer descompactação paralela para arquivos bzip2.
Existem programas que podem conseguir isso? Qual é a sintaxe exata do comando a ser usado para extrair do arquivo?
Estou usando o ubuntu 12.04
tar
compression
gzip
bzip2
user784637
fonte
fonte
tar xvf
?lbzip2 -d -n 2 file.tar.bz2
, dará um arquivo tar. O que precisa ser desimpedido.lbzip2
"Compactar ou descompactar operandos FILE ou entrada padrão para arquivos regulares ou saída padrão, chamando a libbz2 de Julian Seward a partir de vários threads. O utilitário lbzip2 emprega vários threads e um divisor de entrada mesmo quando descompacta arquivos .bz2 criado pelo bzip2 padrão (mas veja os BUGS abaixo). "Você pode descompactar seu arquivo morto com um único comando usando a
-I
opção tar . Permite usar qualquer utilitário de compactação que suporte a-d
opção.É muito útil quando se trata de arquivos grandes, pois você não precisa ter o dobro do tamanho descompactado disponível no sistema de arquivos de destino (o arquivo tar temp e o arquivo de saída) Também é mais rápido, pois você precisa de muito menos IO de disco.
É claro que isso funciona ao comprimir também:
Verifique
tar --help
para mais opções.fonte
lbzip2 -dc file.tar.bz2 | tar xvf -
você pode usar o pbzip2 com o
-d
sinalizador para "descomprimir",da página de manual:
Este exemplo descompactará o arquivo "myfile.tar.bz2" no arquivo descompactado "myfile.tar". Ele usará o número de processadores detectado automaticamente (ou 2 processadores se a detecção automática não for suportada).
Após descompactar, você precisa descompactar o arquivo com
Um arquivo tar é apenas um contêiner, ao qual você pode aplicar vários algoritmos de compactação, por exemplo, você pode ter um ".tar.gz" ou um ".tar.bz2" nos quais ambos têm algoritmos de compactação diferentes aplicados. Portanto, o pbzip2 descompactará apenas o arquivo morto, mas não extrairá os arquivos, use
tar
para extrair os arquivos. O Tar não deve demorar muito, pois o arquivo já está descompactado e apenas extrairá os arquivos. (observe que não estamos usando o sinalizador 'z' ou o sinal 'j' no comando tar, o que indica que também queremos descompactar o arquivo)fonte
O lbzip2 parece muito melhor que o pbzip2 no seu caso, pois é capaz de acelerar a descompactação de arquivos .bz2 padrão, enquanto o pbzip2 não faz isso. (Apenas testei - 17 segundos para lbzip2 vs 56 segundos para pbzip2 em um quad core parcialmente carregado).
fonte