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

14

Eu tenho um arquivo bastante grande (~ 50 GB) e leva um tempo para ser executado

tar xvf file.tar.bz2

nele. Estou ciente de programas que podem fazer compressão paralela para arquivos bzip2, mas desconhecem programas que podem fazer descompactação paralela para arquivos bzip2.

Existe algum programa que possa alcançar isso? Qual é a sintaxe exata do comando a ser usado para extrair do arquivo?

Estou usando o Ubuntu 12.04

    
por user784637 08.11.2012 / 06:57

4 respostas

17

lbzip2 e pbzip2 são as ferramentas que você pode usar para compactação e descompactação paralelas.

Uso:

lbzip2 -d <file.tar.bz2> 
pbzip2 -d <file.tar.bz2> 
A opção

-d é usada para descompactação.

Para instalar estes pacotes:

lbzip2 tipo:

sudo apt-get install lbzip2

pbzip2 tipo:

sudo apt-get install pbzip2
    
por devav2 08.11.2012 / 07:23
9

Você pode descompactar seu arquivo com um comando único usando a opção tar -I . Ele permite que você use qualquer utilitário de compactação que suporte a opção -d .

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

Ele é muito útil ao usar um arquivo grande, já que você não precisa ter o dobro do tamanho descompactado disponível no sistema de arquivos de destino (o arquivo tar tar e o arquivo de saída) Também é mais rápido, pois você precisa de muito menos IO do disco.

É claro que isso também funciona ao compactar:

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

Verifique tar --help para mais opções.

    
por Ludovic Ronsin 12.03.2014 / 22:26
5

você pode usar o pbzip2 com o sinalizador -d para "descompactar",

da página de manual:

  pbzip2 -d myfile.tar.bz2

Este exemplo irá descompactar o arquivo "myfile.tar.bz2" no        arquivo descompactado "myfile.tar". Ele usará o número de autodetectado        processadores (ou 2 processadores se a autodetecção não for suportada).

Após a descompactação, 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", ambos com diferentes algoritmos de compactação aplicados. Portanto, o pbzip2 somente descompactará o arquivo, mas ele não extrairá os arquivos, use tar para extrair os arquivos. O tar não deve demorar muito, já que o arquivo já está descompactado e apenas extrairá os arquivos. (note que não estamos usando o sinalizador 'z' ou o sinalizador 'j' no comando tar, o que indica que também queremos descompactar o arquivo)

    
por Sam 08.11.2012 / 07:03
2

O lbzip2 parece muito melhor do que o pbzip2 no seu caso, pois é capaz de acelerar a descompactação de arquivos padrão .bz2 enquanto o pbzip2 não faz isso. (Apenas testei - 17 segundos para lbzip2 vs 56 segundos para pbzip2 em um quad core parcialmente carregado).

    
por Stefan Reich 25.05.2017 / 00:38