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.