So dekomprimieren Sie eine .bz2-Datei


377

Ich habe eine Datei als: filename.bz2Ich muss dekomprimieren.

Ich habe den Befehl ausprobiert:, tar xvjf filename.tar.bz2aber es hat nicht funktioniert, da die Datei keine tarDatei ist.

Wie dekomprimiere ich diese Datei?

Antworten:


495

Versuche Folgendes:

bzip2 -d filename.bz2

Beachten Sie, dass dieser Befehl die ursprüngliche Archivdatei nicht beibehält.

Fügen Sie die folgende -kOption hinzu, um das ursprüngliche Archiv beizubehalten:

bzip2 -dk filename.bz2

4
Sie können auch bunzip2 verwenden, wobei standardmäßig die Option -d (dekomprimieren) verwendet wird.
RonaldB

2
@ LewisDiamond Ich lief bzip2 -d vim-8.0.tar.bz2, das ergibt vim-8.0.tar. Ich konnte das nicht betreten.
Alhelal

4
@alhelal Das liegt daran, dass es sich um eine .tar.bz2-Datei handelt. Du hast den Tarball entpackt, du hast den Tarbal entpackt. Extrahieren Sie es mit tar -x vim-8.0.tar. Ursprünglich hättest du es gebrauchen können tar -xjvf vim-8.0.tar.bz2.
Lewis Diamond

Eine leichte Korrektur von Lewis 'Kommentar, Teer braucht auch -f (zumindest auf Raspbian Wheezy) wie folgttar -xf vim-8.0.tar
JulianHarty

65

Zur weiteren Erläuterung kann eine einzelne Datei folgendermaßen komprimiert werden bzip2:

bzip2 myfile.txt

tar wird nur benötigt, wenn mehrere Dateien komprimiert werden:

tar cvjf myfile.tar.bz *.txt

Wenn Sie also eine .bz2Datei dekomprimieren, verwenden Sie bunzip, wenn Sie eine tar.bz2Datei dekomprimieren , verwenden Sie tar xjvf.


6
Ausgezeichneter Rat über das XJVF, hat mich gerettet. Vielen Dank!
Edgar Aroutiounian

4
Sie können nur verwenden tar xjf filename.tar.bz2. Das vfügt nur eine ausführliche Ausgabe hinzu. Halten Sie Ihr Terminal sauber! Ich hatte auch Probleme beim Laufen tar -xjf, also versuche es -
unbedingt

1
tar xfsollte mit der BSD-Variante ausreichen - das jFlag wird nur beim Komprimieren verwendet
Mark Fox

20

Verwenden Sie den Befehl bunzip2(oder bzip2 -d), um die Datei zu dekomprimieren. Weitere Informationen finden Sie in dieser Manpage ,


Verbindung ist unterbrochen Levon
ankii

12

bzip2 Mono-Threaded, was bedeutet, dass das Dekomprimieren einer großen Datei viel Zeit in Anspruch nimmt.

Um eine .bz2Datei in mehreren Threads zu dekomprimieren , können Sie das kostenlose Open Source-Programm verwenden lbzip2:

sudo apt-get install lbzip2
lbzip2 -d my_file.bz2

-dgibt an, dass Sie die Datei dekomprimieren möchten. Es würde automatisch bestimmen, wie viele Threads es verwenden wird. Verwenden Sie den -nParameter, um die genaue Anzahl der Threads anzugeben, die Sie verwenden möchten , z.

lbzip2 -d -n 32 my_file.bz2

Noch ein paar nützliche Befehle mit lbzip2:

So komprimieren Sie einen Ordner:

tar -c -I lbzip2 -f file.tar.bz2 folder_name

So dekomprimieren Sie einen Ordner:

 tar -I lbzip2 -xvf file.tar.bz2

Parameter:

-I, --use-compress-program PROG
      filter through PROG (must accept -d)
-x, --extract, --get
      extract files from an archive
-v, --verbose
      verbosely list files processed
-f, --file ARCHIVE
      use archive file or device ARCHIVE

Einige Alternativen zum Dekomprimieren einer .bz2Datei in mehreren Threads:

pbzip2:

sudo apt-get install pbzip2
pbzip2 -d my_file.bz2

mpibzip2: Entwickelt für die Verwendung auf Cluster-Computern.


Wenn Sie .bz2zum Experimentieren einige große Dateien benötigen : https://dumps.wikimedia.org/mirrors.html

Zum Beispiel (eine 14 GB- .bz2Datei, 200 GB unkomprimiert):

wget http://dumps.wikimedia.your.org/wikidatawiki/20170120/wikidatawiki-20170120-pages-articles-multistream.xml.bz2 
lbzip2 -d -n 32 wikidatawiki-20170120-pages-articles-multistream.xml.bz2 

http://vbtechsupport.com/1614/ hat den Benchmark durchgeführt:

Bildbeschreibung hier eingeben


Weitere Informationen zu den Parametern für lbzip2: http://explainshell.com/explain?cmd=lbzip2+-d+-n+32+my_file.bz2 :

Bildbeschreibung hier eingeben


3
bzip2 -dc my_file.tar.bz2 | tar xvf -

hat für mich an cygwin gearbeitet


1
Es wäre hilfreich, wenn Sie Ihrer Antwort ein paar Sätze hinzufügen könnten, um zu erklären, was sie bewirkt.
Fixer1234

2
@ fixer1234 ‚-c‘ Option kopiert die dekomprimiert Ausgabe auf STDOUT , die dann auf tar - Utility geleitet wird und als Dateiname verwendet präsentiert ‚-‘ , so dass Sie es so vereinfachen können: bzip2 -d my_file.tar.bz2 ; tar xvf my_file.tar
sactiw

1
Ich glaube, auch dies sollte funktionieren, bzip2 -dc my_file.tar.bz2 | tar xvdh es muss keine -f-Option und kein entsprechendes '-' - Zeichen danach verwendet werden, da tar das von STDOUT durch den Pipe-Operator direkt lesen kann. Sie können auch die Option -v löschen, wenn Sie die verarbeiteten Dateien nicht auflisten möchten.
Sactiw

2
Dies hilft nicht weiter, da das ursprüngliche Poster bereits erwähnt hat, dass es sich nicht um ein tarArchiv handelt.
Eiswasser

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.