Як розпакувати файл .bz2


377

У мене є файл: filename.bz2мені потрібно розпакувати.

Я спробував команду:, tar xvjf filename.tar.bz2але вона не спрацювала, оскільки файл не є tarфайлом.

Як розпакувати цей файл?

Відповіді:


495

Спробуйте наступне:

bzip2 -d filename.bz2

Зауважте, що ця команда не збереже оригінальний архівний файл.

Щоб зберегти оригінальний архів, додайте -kпараметр:

bzip2 -dk filename.bz2

4
Ви також можете використовувати bunzip2, який за замовчуванням використовує параметр -d (нестискати).
РональдБ

2
@LewisDiamond Я побіг bzip2 -d vim-8.0.tar.bz2, це результати vim-8.0.tar. Я не міг увійти до цього.
alhelal

4
@alhelal це тому, що це файл .tar.bz2. Ви розпакували тарбол, ви залишилися з нерозкопаним тарбалом. Витягніть його за допомогою tar -x vim-8.0.tar. Спочатку ви могли використовувати tar -xjvf vim-8.0.tar.bz2.
Льюїс

Невелика поправка до коментаря Льюїса, тар також потребує -f (принаймні, на Raspbian Wheezy) наступним чиномtar -xf vim-8.0.tar
JulianHarty

65

Щоб пояснити трохи далі, один файл можна стиснути bzip2таким чином:

bzip2 myfile.txt

tar потрібен лише при стисненні декількох файлів:

tar cvjf myfile.tar.bz *.txt

Отже, при розпакуванні використання .bz2файлу bunzip, при розпакуванні використання tar.bz2файлу tar xjvf.


6
Чудова порада про xjvf, щойно мене врятував. Дякую!
Едгар Арутьонійський

4
Можна просто використовувати tar xjf filename.tar.bz2. vПросто додає докладний висновок. Зберігайте термінал в чистоті! У мене також були проблеми із запуском tar -xjf, тому не забудьте спробувати запустити його-
MrOodles

1
tar xfмає бути достатньо для варіанта BSD - jпрапор використовується лише при стисненні
Марк Фокс

20

Використовуйте команду bunzip2(або bzip2 -d) для розпакування файлу. Для отримання додаткової інформації див цю сторінку ,


Посилання розірвано Левон
ankii

12

bzip2 є однопотоковою, що означає, що для декомпресії великого файлу знадобиться багато часу.

Щоб розпакувати .bz2файл багатопотоково, ви можете використовувати безкоштовну програму з відкритим кодом lbzip2:

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

-dвказує на те, що ви бажаєте розпакувати файл. Це автоматично визначить, скільки потоків він буде використовувати. Щоб вказати точну кількість потоків, які ви хочете використовувати, використовуйте -nпараметр, наприклад:

lbzip2 -d -n 32 my_file.bz2

Ще кілька корисних команд із lbzip2:

Щоб стиснути папку:

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

Щоб розпакувати папку:

 tar -I lbzip2 -xvf file.tar.bz2

Параметри:

-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

Деякі варіанти декомпресії .bz2файлу багатопотоково:

pbzip2:

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

mpibzip2: призначений для використання на кластерних машинах.


Якщо вам потрібно .bz2експериментувати з великими файлами: https://dumps.wikimedia.org/mirrors.html

Наприклад (файл 14 ГБ .bz2, нестиснений 200 ГБ):

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/ зробив тест:

введіть тут опис зображення


Для отримання додаткової інформації щодо параметрів для lbzip2: http://explainshell.com/explain?cmd=lbzip2+-d+-n+32+my_file.bz2 :

введіть тут опис зображення


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

працював на мене на Cygwin


1
Було б корисно, якщо ви зможете додати до своєї відповіді кілька речень, щоб пояснити, що це робить.
fixer1234

2
@ fixer1234 "-c" Опція копіює декомпресований вихід у STDOUT, який потім передається на утиліту tar та подається як ім'я файлу за допомогою '-', щоб ви могли спростити це як: bzip2 -d my_file.tar.bz2 ; tar xvf my_file.tar
satiw

1
Я вважаю, що навіть це повинно працювати, bzip2 -dc my_file.tar.bz2 | tar xvтобто не потрібно використовувати опцію -f та відповідний знак '-' після неї, оскільки tar може безпосередньо читати STDOUT через оператора труби. Крім того, не соромтеся скинути -v варіант, якщо ви не хочете перераховувати файли, які обробляються.
sactiw

2
Це не допомагає, оскільки в оригінальному плакаті вже згадувалося, що це не tarархів.
крижана вода

-4
  1. Перейдіть на сторінку https://cloudconvert.com .
  2. Завантажте файл.
  3. Перетворіть його у файл .tar.
  4. Завантажте його.
  5. Витягніть його звідти, у своєму терміналі.

7
Не підходить для дуже великих файлів!
narendranathjoshi

9
Ми суперперуари. Ми хочемо термінальне рішення.
noɥʇʎԀʎzɐɹƆ

@Містер. де Сантуш ... і тим самим відмовились від контролю над вашими даними. Ти не можеш бути серйозним.
dirdi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.