Вопрос: Как распаковать файл .bz2


У меня есть файл: filename.bz2 Мне нужно распаковать.

Я попробовал команду: tar xvjf filename.tar.bz2, но это не сработало, поскольку файл не является tar файл.

Как распаковать этот файл?


310
2017-09-28 19:40


Источник




Ответы:


Попробуйте следующее:

bzip2 -d filename.bz2

Обратите внимание, что эта команда не сохранит исходный файл архива.

Чтобы сохранить исходный архив, добавьте -k опция:

bzip2 -dk filename.bz2

410
2017-09-28 19:42



Вы также можете использовать bunzip2, который по умолчанию использует параметр -d (uncompress). - RonaldB
@LewisDiamond Я побежал bzip2 -d vim-8.0.tar.bz2, то результаты vim-8.0.tar, Я не мог войти в это. - alhelal
@alhelal, потому что это файл .tar.bz2. Вы расстегнули архив tarball, вы остались с распакованным tarbal. Извлеките его tar -x vim-8.0.tar, Первоначально вы могли бы использовать tar -xjvf vim-8.0.tar.bz2, - Lewis Diamond
Небольшая коррекция комментария Льюиса, tar также нуждается в -f (по крайней мере, на Raspbian Wheezy) следующим образом tar -xf vim-8.0.tar - JulianHarty


Чтобы объяснить еще немного, один файл можно сжать bzip2 таким образом:

bzip2 myfile.txt

tar требуется только при сжатии нескольких файлов:

tar cvjf myfile.tar.bz *.txt

Следовательно, при разжатии .bz2 использование файла bunzip, когда tar.bz2 использование файла tar xjvf,


59
2017-09-28 19:49



Отличный совет о xjvf, просто спас меня. Благодаря! - Edgar Aroutiounian
Вы можете просто использовать tar xjf filename.tar.bz2, v просто добавляет подробный вывод. Держите терминал в чистоте! У меня также были проблемы с запуском tar -xjf, поэтому обязательно попробуйте запустить его без - - MrOodles
tar xf должно быть достаточно с вариантом BSD - j флаг используется только при сжатии - Mark Fox


Использовать bunzip2 (или bzip2 -d) для распаковки файла. Для получения дополнительной информации см. Это справочная страница,


21
2017-09-28 19:42





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/ сделал контрольный показатель:

enter image description here


Для получения дополнительной информации о параметрах для lbzip2: http://explainshell.com/explain?cmd=lbzip2+-d+-n+32+my_file.bz2 :

enter image description here


5
2018-01-25 18:50





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

работал на меня на cygwin


3
2018-05-21 11:12



Было бы полезно, если бы вы могли добавить несколько предложений к своему ответу, чтобы объяснить, что он делает. - fixer1234
Опция @ fixer1234 '-c' копирует распакованный вывод в STDOUT, который затем передается в утилиту tar и отображается как имя файла, используя '-', поэтому вы можете упростить его как: bzip2 -d my_file.tar.bz2 ; tar xvf my_file.tar - sactiw
Я считаю, что даже это должно работать bzip2 -dc my_file.tar.bz2 | tar xv то есть нет необходимости использовать параметр -f и соответствующий знак «-» после него, поскольку tar может непосредственно читать STDOUT через оператор трубы. Кроме того, не стесняйтесь отключать опцию -v, если вы не хотите, чтобы список обрабатываемых файлов. - sactiw
Это не помогает, поскольку оригинальный плакат уже упоминал, что это не tar архив. - icedwater


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

-3
2018-01-14 13:57



Не подходит для действительно больших файлов! - narendranathjoshi
Мы суперпользователи. Мы хотим использовать терминальное решение. - noɥʇʎԀʎzɐɹƆ