Как разархивировать файл .bz2

Вопрос или проблема

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

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

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

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

bzip2 -d filename.bz2

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

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

bzip2 -dk filename.bz2

Для более детального объяснения, один файл можно сжать с помощью bzip2 следующим образом:

bzip2 myfile.txt

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

tar cvjf myfile.tar.bz *.txt

Таким образом, для распаковки файла .bz2 используйте bunzip, для распаковки файла tar.bz2 используйте tar xjvf.

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

bzip2 является однопоточным, что означает, что распаковка большого файла займет много времени.

Чтобы распаковать файл .bz2 многопоточно, вы можете использовать бесплатную программу с открытым исходным кодом lbzip2:

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

-d указывает, что вы хотите распаковать файл. Она автоматически определит, сколько потоков будет использоваться. Чтобы указать точное количество потоков, которые вы хотите использовать, используйте параметр -n, например:

lbzip2 -d -n 32 my_file.bz2

Несколько дополнительных полезных команд с lbzip2:

Чтобы сжать файл с индикатором выполнения:

pv adb_int.tar | lbzip2 > adb_int.tar.bz2

Требования для индикатора выполнения:

sudo apt-get install -y pv

Чтобы сжать папку:

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

Чтобы распаковать папку:

 tar -I lbzip2 -xvf file.tar.bz2

Параметры:

-I, --use-compress-program PROG
      фильтрация через PROG (должен принимать -d)
-x, --extract, --get
      извлечь файлы из архива
-v, --verbose
      подробно перечислить обработанные файлы
-f, --file ARCHIVE
      использовать файл архива или устройство ARCHIVE

Некоторые альтернативы для многопоточной распаковки файла .bz2:

pbzip2:

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

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


Если вам нужны большие файлы .bz2 для экспериментов: https://dumps.wikimedia.org/mirrors.html

Например (файл .bz2 размером 14 ГБ, 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 :

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

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

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

Если у вас есть ограниченная система, на которой не установлен bzip, но есть python3, вы можете использовать библиотеку bz2.

import bz2
f = bz2.open(file_name)
for line in f:
  print(line)
  1. Перейдите на https://cloudconvert.com.
  2. Загрузите файл.
  3. Преобразуйте его в файл .tar.
  4. Скачайте его.
  5. Распакуйте его оттуда в вашем терминале.

Ответ или решение

Чтобы разархивировать файл с расширением .bz2, вы можете использовать несколько различных методов и инструментов. Приведенные ниже шаги помогут вам в этом процессе.

1. Использование bzip2 и bunzip2

Для простого разжатия файла .bz2 выполните следующую команду в терминале:

bzip2 -d filename.bz2

или

bunzip2 filename.bz2

Обратите внимание, что эти команды удалят оригинальный сжатый файл после его разжатия.

Если вы хотите сохранить оригинальный файл, используйте флаг -k:

bzip2 -dk filename.bz2

2. Использование многопоточности с lbzip2

Стандартный bzip2 является однопоточным, что может занять много времени при разжатии больших файлов. Для ускорения процесса вы можете использовать lbzip2, который поддерживает многопоточность. Для этого сначала установите lbzip2:

sudo apt-get install lbzip2

Затем выполните команду для разжатия:

lbzip2 -d filename.bz2

Чтобы указать количество потоков, используйте флаг -n:

lbzip2 -d -n 4 filename.bz2  # Например, для 4 потоков

3. Использование pbzip2

Еще один многопоточный инструмент — это pbzip2. Установите его с помощью следующей команды:

sudo apt-get install pbzip2

Затем используйте команду:

pbzip2 -d filename.bz2

4. Использование языка Python

Если на вашем компьютере нет установленных утилит для сжатия, вы можете воспользоваться встроенным модулем bz2 в Python 3. Для этого выполните следующий код:

import bz2

with bz2.open('filename.bz2', 'rb') as f:
    file_content = f.read()
    print(file_content)

5. Работа с архивами .tar.bz2

Если ваш файл имеет расширение .tar.bz2, вы можете использовать команду tar для его извлечения:

tar xvjf filename.tar.bz2

6. Альтернативные методы

Если у вас нет доступа к терминалу или необходимым инструментам, вы можете воспользоваться веб-сервисами, такими как CloudConvert, чтобы загружать и конвертировать файлы.

Заключение

Каждый из предложенных методов подходит для разжатия файлов .bz2. Выбор подходящего будет зависеть от ваших требований к скорости обработки и наличия инструментов в вашей среде. Используя указанные команды, вы сможете эффективно управлять вашими сжатыми файлами.

Оцените материал
Добавить комментарий

Капча загружается...