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?

Jury A.
źródło

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
Lewis Diamond
źródło
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.

Benj
źródło
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
20

Użyj polecenia bunzip2(lub bzip2 -d), aby rozpakować plik. Aby uzyskać więcej informacji, zobacz tę stronę podręcznika ,

Levon
źródło
Link jest zerwany Levon
ankii
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

Franck Dernoncourt
źródło
3
bzip2 -dc my_file.tar.bz2 | tar xvf -

pracował dla mnie na cygwin

Vishal
źródło
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
-4
  1. Przejdź do https://cloudconvert.com .
  2. Prześlij plik.
  3. Konwertuj go na plik .tar.
  4. Pobierz to.
  5. Wyodrębnij go stamtąd w swoim terminalu.
Pan de Santos
źródło
7
Nie nadaje się do naprawdę dużych plików!
narendranathjoshi
9
Jesteśmy superużytkownikami. Chcemy rozwiązania terminalowego.
noɥʇʎԀʎzɐɹƆ
@Pan. de Santos ... i tym samym rezygnując z kontroli nad swoimi danymi. Nie możesz być poważny.
dirdi