Qualquer comando linux para executar a descompactação paralela do arquivo tar.bz2?

17

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

user784637
fonte

Respostas:

22

lbzip2e pbzip2são as ferramentas que você pode usar para compactação e descompactação paralela.

Uso:

lbzip2 -d <file.tar.bz2> 
pbzip2 -d <file.tar.bz2> 

-d A opção é usada para descompressão.

Para instalar esses pacotes:

Instale o lbzip2tipo lbzip2 :

sudo apt-get install lbzip2

Instale o pbzip2tipo pbzip2 :

sudo apt-get install pbzip2
devav2
fonte
Então, se eu entendi direito, preciso descomprimir e descompactar? Como 2 comandos em oposição a tar xvf?
precisa saber é o seguinte
1
Sim, quando você o executa lbzip2 -d -n 2 file.tar.bz2, dará um arquivo tar. O que precisa ser desimpedido.
Devv2
1
Na página de manual do pbzip2 (lbzip2 conta uma história semelhante): "Os arquivos compactados com o pbzip2 também ganharão uma considerável aceleração quando descompactados usando o pbzip2. Os arquivos compactados com o bzip2 não verão o acelerador, pois o bzip2 empacota os dados em um único bloco que não podem ser divididos entre processadores ".
Tapio
1
@Tapio Aqui está a descrição para 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). "
devav2
1
Apenas pela resposta, eu entenderia que os dois programas precisam ser usados ​​juntos de alguma forma - mas eles parecem alternativas, na verdade? (Ele diz "lbzip2 e pbzip2 são as ferramentas ...", "Uso: lbzip2 ... pbzip2 ...", "para instalá-los ...")
Volker Siegel
11

Você pode descompactar seu arquivo morto com um único comando usando a -Iopção tar . Permite usar qualquer utilitário de compactação que suporte a -dopção.

tar -I lbzip2 -xvf <file.tar.bz2>

É 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:

tar -I lbzip2 -cvpf <file.tar.bz2> <file>

Verifique tar --helppara mais opções.

Ludovic Ronsin
fonte
1
Outra opção (por exemplo, se a sua versão do "tar" não entender a opção -I) élbzip2 -dc file.tar.bz2 | tar xvf -
Wodin
5

você pode usar o pbzip2 com o -dsinalizador para "descomprimir",

da página de manual:

  pbzip2 -d myfile.tar.bz2

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

 tar xf myfile.tar

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 tarpara 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)

Sam
fonte
1
a página de manual tem alguns exemplos úteis: manpages.ubuntu.com/pbzip2
Savvas Radevic
@ Sam Obrigado pela resposta - você seria capaz de responder ao comentário que deixei na outra resposta
user784637 8/12/12
2

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).

Stefan Reich
fonte