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?

Jury A
quelle

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
Lewis Diamond
quelle
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.

Benj
quelle
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 ,

Levon
quelle
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

Franck Dernoncourt
quelle
3
bzip2 -dc my_file.tar.bz2 | tar xvf -

hat für mich an cygwin gearbeitet

Vishal
quelle
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
-4
  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 Ihrem Terminal.
Herr de Santos
quelle
7
Ist nicht für sehr große Dateien geeignet!
Narendranathjoshi
9
Wir sind Superuser. Wir wollen eine terminalbasierte Lösung.
noɥʇʎԀʎzɥʇʎԀʎ
@Herr. de Santos ... und damit die Kontrolle über Ihre Daten aufgeben. Sie können nicht ernst sein.
Dirdi