Вопрос или проблема
У меня есть файл: 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
:
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)
- Перейдите на https://cloudconvert.com.
- Загрузите файл.
- Преобразуйте его в файл .tar.
- Скачайте его.
- Распакуйте его оттуда в вашем терминале.
Ответ или решение
Чтобы разархивировать файл с расширением .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
. Выбор подходящего будет зависеть от ваших требований к скорости обработки и наличия инструментов в вашей среде. Используя указанные команды, вы сможете эффективно управлять вашими сжатыми файлами.