Jak zdekompresować plik .bz2


377

Mam plik jako: filename.bz2Potrzebuję rozpakować.

Próbowałem polecenia:, tar xvjf filename.tar.bz2ale nie działało, ponieważ plik nie jest tarplikiem.

Jak rozpakować ten plik?

Odpowiedzi:


495

Spróbuj wykonać następujące czynności:

bzip2 -d filename.bz2

Uwaga: to polecenie nie zachowuje oryginalnego pliku archiwum.

Aby zachować oryginalne archiwum, dodaj -kopcję:

bzip2 -dk filename.bz2

4
Możesz także użyć bunzip2, który domyślnie używa opcji -d (rozpakuj).
RonaldB

2
@LewisDiamond I pobiegł bzip2 -d vim-8.0.tar.bz2, to wyniki vim-8.0.tar. Nie mogłem do tego wejść.
alhelal

4
@alhelal, ponieważ jest to plik .tar.bz2. Rozpakowałeś archiwum, pozostałeś z rozpakowanym archiwum. Wyodrębnij za pomocą tar -x vim-8.0.tar. Pierwotnie mogłeś użyć tar -xjvf vim-8.0.tar.bz2.
Lewis Diamond

Drobna korekta komentarza Lewisa, tar również potrzebuje -f (przynajmniej na Raspbian Wheezy) w następujący sposóbtar -xf vim-8.0.tar
JulianHarty,

65

Aby wyjaśnić nieco więcej, pojedynczy plik można skompresować w następujący bzip2sposób:

bzip2 myfile.txt

tar jest wymagany tylko podczas kompresji wielu plików:

tar cvjf myfile.tar.bz *.txt

Dlatego podczas dekompresowania .bz2użycia pliku bunzip, podczas dekompresowania tar.bz2użycia pliku tar xjvf.


6
Doskonała rada na temat xjvf, właśnie mnie uratowała. Dzięki!
Edgar Aroutiounian,

4
Możesz po prostu użyć tar xjf filename.tar.bz2. Po vprostu dodaje pełne dane wyjściowe. Utrzymuj swój terminal w czystości! Miałem też problemy z bieganiem tar -xjf, więc spróbuj uruchomić go bez-
MrOodles

1
tar xfpowinno wystarczyć w wariancie BSD - jflaga jest używana tylko podczas kompresji
Mark Fox


12

bzip2 jest monowątkowy, co oznacza, że ​​rozpakowanie dużego pliku zajmie dużo czasu.

Aby zdekompresować .bz2plik wielowątkowo, możesz użyć darmowego programu typu open source lbzip2:

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

-dwskazuje, że chcesz rozpakować plik. Automatycznie określa, ile wątków będzie używać. Aby określić dokładną liczbę wątków, których chcesz użyć, użyj -nparametru, np .:

lbzip2 -d -n 32 my_file.bz2

Kilka innych przydatnych poleceń z lbzip2:

Aby skompresować folder:

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

Aby rozpakować folder:

 tar -I lbzip2 -xvf file.tar.bz2

Parametry:

-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

Niektóre alternatywy dekompresji .bz2pliku wielowątkowego:

pbzip2:

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

mpibzip2: przeznaczony do stosowania na komputerach klastrowych.


Jeśli potrzebujesz dużych .bz2plików do eksperymentowania: https://dumps.wikimedia.org/mirrors.html

Na przykład (plik 14 GB .bz2, 200 GB nieskompresowany):

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/ zrobił test:

wprowadź opis zdjęcia tutaj


Aby uzyskać dodatkowe informacje dotyczące parametrów lbzip2: http://explainshell.com/explain?cmd=lbzip2+-d+-n+32+my_file.bz2 :

wprowadź opis zdjęcia tutaj


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

pracował dla mnie na cygwin


1
Przydałoby się dodać kilka odpowiedzi do odpowiedzi, aby wyjaśnić, co robi.
fixer1234

2
@ fixer1234 Opcja „-c” kopiuje zdekompresowane wyjście do STDOUT, które jest następnie przesyłane do narzędzia tar i prezentowane jako nazwa pliku za pomocą „-”, dzięki czemu można uprościć jako: bzip2 -d my_file.tar.bz2 ; tar xvf my_file.tar
sactiw

1
Uważam, że nawet to powinno działać, bzip2 -dc my_file.tar.bz2 | tar xvtzn. Nie trzeba używać opcji -f i odpowiadającego jej znaku „-”, ponieważ tar może bezpośrednio odczytać STDOUT za pośrednictwem operatora potoku. Możesz także upuścić opcję -v, jeśli nie chcesz wyświetlać listy przetwarzanych plików.
sactiw

2
To nie pomaga, ponieważ oryginalny plakat już wspomniał, że nie jest to tararchiwum.
icedwater

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.