So dekomprimieren Sie eine .bz2-Datei

761983
Jury A

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 kann ich diese Datei dekomprimieren?

322

6 Antworten auf die Frage

435
Lewis Diamond

Versuche Folgendes:

bzip2 -d filename.bz2 

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

Um das Originalarchiv zu erhalten, fügen Sie die -kOption hinzu:

bzip2 -dk filename.bz2 
Sie können auch bunzip2 verwenden, das standardmäßig die Option -d (uncompress) verwendet. RonaldB vor 7 Jahren 3
@LewisDiamond Ich habe `bzip2 -d vim-8.0.tar.bz2` ausgeführt, woraus` vim-8.0.tar` resultiert. Ich konnte das nicht betreten. alhelal vor 6 Jahren 0
@alhelal, weil es eine .tar.bz2-Datei ist. Sie haben den Tarball entpackt, Sie haben den entpackten Tarbal. Extrahieren Sie es mit `tar -x vim-8.0.tar`. Ursprünglich hätten Sie `tar -xjvf vim-8.0.tar.bz2` verwenden können. Lewis Diamond vor 6 Jahren 3
Eine geringfügige Korrektur zu Lewis 'Kommentar, tar benötigt auch -f (zumindest für Raspbian Wheezy) wie folgt: "tar -xf vim-8.0.tar" JulianHarty vor 6 Jahren 0
59
Benj

Um es etwas näher zu erläutern, kann eine einzelne Datei folgendermaßen komprimiert werden bzip2:

bzip2 myfile.txt

tar wird nur beim Komprimieren mehrerer Dateien benötigt:

tar cvjf myfile.tar.bz *.txt

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

Ausgezeichneter Ratschlag bezüglich der XJVF, hat mich gerade gerettet. Vielen Dank! Edgar Aroutiounian vor 11 Jahren 6
Sie können nur tar xjf dateiname.tar.bz2 verwenden. Das "v" fügt nur eine ausführliche Ausgabe hinzu. Halte dein Terminal sauber! Ich hatte auch Probleme beim Ausführen von `tar -xjf`. Versuchen Sie also, es ohne das` -` auszuführen MrOodles vor 9 Jahren 4
"tar xf" sollte bei der BSD-Variante ausreichend sein - das "j" -Flag wird nur beim Komprimieren verwendet Mark Fox vor 9 Jahren 1
20
Levon

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

7
Franck Dernoncourt

bzip2 ist ein Monothread, was bedeutet, dass es lange dauert, eine große Datei zu dekomprimieren.

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

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

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

lbzip2 -d -n 32 my_file.bz2 

Einige weitere 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 multithreaded:

pbzip2:

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

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


Wenn Sie einige große .bz2Dateien zum Experimentieren 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 gemacht:


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

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

arbeitete für mich bei cygwin

Es wäre hilfreich, wenn Sie Ihrer Antwort ein paar Sätze hinzufügen könnten, um zu erklären, was sie bewirkt. fixer1234 vor 9 Jahren 1
@ fixer1234 Die Option "-c" kopiert die dekomprimierte Ausgabe nach STDOUT, die dann an das tar-Hilfsprogramm weitergeleitet wird und mit "-" als Dateiname angezeigt wird. So können Sie sie vereinfachen als: tar xvf my_file.tar` sactiw vor 8 Jahren 2
Ich glaube, dass auch dies funktionieren sollte `bzip2 -dc meine_datei.tar.bz2 | tar xv` dh keine Notwendigkeit, die Option -f und das entsprechende '-' - Zeichen zu verwenden, da tar das STDOUT direkt über den Pipe-Operator lesen kann. Sie können auch die Option -v ablegen, wenn Sie die verarbeiteten Dateien nicht auflisten möchten. sactiw vor 8 Jahren 1
Das hilft nicht, da das ursprüngliche Poster bereits erwähnt hat, dass es sich nicht um ein tar-Archiv handelt. icedwater vor 8 Jahren 2
-3
Mr. de Santos
  1. Gehen Sie zu https://cloudconvert.com .
  2. Laden Sie die Datei hoch.
  3. Konvertieren Sie es in eine .tar-Datei.
  4. Lade es herunter.
  5. Extrahieren Sie es von dort in Ihr Terminal.
Ist nicht für wirklich große Dateien geeignet! narendranathjoshi vor 8 Jahren 7
Wir sind Superuser. Wir wollen eine Terminal-basierte Lösung. noɥʇʎԀʎzɐɹƆ vor 8 Jahren 9