Qualche comando linux per eseguire la decompressione parallela del file tar.bz2?


17

Ho un file piuttosto grande (~ 50 GB) e ci vuole del tempo per eseguirlo

tar xvf file.tar.bz2

su di essa. Sono a conoscenza di programmi che possono eseguire la compressione parallela per i file bzip2 ma ignaro di programmi che possono eseguire la decompressione parallela per i file bzip2.

Ci sono programmi che possono raggiungere questo obiettivo? Qual è la sintassi esatta del comando da utilizzare per estrarre dal file?

Sto usando Ubuntu 12.04

Risposte:


22

lbzip2e pbzip2sono gli strumenti che è possibile utilizzare per la compressione e la decompressione parallele.

Uso:

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

-d opzione viene utilizzata per la decompressione.

Per installare questi pacchetti:

Installa lbzip2tipo lbzip2 :

sudo apt-get install lbzip2

Installa pbzip2tipo pbzip2 :

sudo apt-get install pbzip2

Quindi, se ho capito bene, ho bisogno di decomprimere e quindi sparare? Come 2 comandi invece di tar xvf?
user784637

1
Sì quando lo esegui lbzip2 -d -n 2 file.tar.bz2darà un file tar. Che deve essere non tarato.
devav2

1
Dalla pagina man di pbzip2 (lbzip2 racconta una storia simile): "I file compressi con pbzip2 ottengono anche un notevole aumento di velocità quando vengono decompressi utilizzando pbzip2. I file compressi con bzip2 non vedranno lo speedup poiché bzip2 impacchetta i dati in un unico blocco che non può essere suddiviso tra processori ".
Tapio,

1
@Tapio Ecco la descrizione di lbzip2"Comprimi o decomprimi operandi FILE o input standard in file regolari o output standard, chiamando libbz2 di Julian Seward da più thread. L'utilità lbzip2 impiega più thread e uno splitter associato all'input anche durante la decompressione dei file .bz2 creato dallo standard bzip2 (ma vedi sotto i BUG). "
devav2,

1
Dalla sola risposta, capirei che entrambi i programmi devono essere usati insieme in qualche modo - ma sembrano essere alternative, in realtà? (Dice "lbzip2 e pbzip2 sono gli strumenti ...", "Utilizzo: lbzip2 ... pbzip2 ...", "per installare questi ...")
Volker Siegel

11

Puoi decomprimere il tuo archivio con un singolo comando usando l' -Iopzione tar . Ti dà la possibilità di utilizzare qualsiasi utilità di compressione che supporti l' -dopzione.

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

È molto utile quando si esegue il deailing con un archivio di grandi dimensioni poiché non è necessario disporre di una dimensione non compressa doppia sul file system di destinazione (il file tar temp e il file di output) È anche più veloce in quanto è necessario un numero molto inferiore di I / O su disco.

Naturalmente funziona anche con la compressione:

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

Controlla tar --helpaltre opzioni.


1
Un'altra opzione (ad esempio se la tua versione di "tar" non comprende l'opzione -I) èlbzip2 -dc file.tar.bz2 | tar xvf -
Wodin

5

puoi usare pbzip2 con il -dflag per "decomprimere",

dalla manpage:

  pbzip2 -d myfile.tar.bz2

Questo esempio decomprimerà il file "myfile.tar.bz2" nel file decompresso "myfile.tar". Utilizzerà il numero di processori rilevato automaticamente (o 2 processori se il rilevamento automatico non è supportato).

Dopo aver decompresso, è necessario decomprimere il file con

 tar xf myfile.tar

Un file tar è solo un contenitore a cui è possibile applicare più algoritmi di compressione, ad esempio è possibile avere un ".tar.gz" o un ".tar.bz2" a cui sono applicati entrambi algoritmi di compressione diversi. Quindi pbzip2 decomprimerà solo l'archivio ma non estrarrà i file, utilizzare tarper estrarre i file. Tar non dovrebbe richiedere molto tempo poiché l'archivio è già non compresso e estrarrà semplicemente i file. (nota che non stiamo usando il flag 'z' o il flag 'j' nel comando tar, che indicano che vogliamo anche decomprimere il file)


1
la pagina del manuale contiene alcuni esempi utili: manpages.ubuntu.com/pbzip2
Savvas Radevic

@Sam Grazie per la risposta - saresti in grado di rispondere al commento che ho lasciato sull'altra risposta
user784637

2

lbzip2 sembra molto meglio di pbzip2 nel tuo caso in quanto è in grado di accelerare la decompressione dei file .bz2 standard mentre pbzip2 non lo fa. (Appena testato - 17 secondi per lbzip2 contro 56 secondi per pbzip2 su un quad core parzialmente caricato).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.