Что такое формат файла BZ?
Файл .bz - это файл данных, сжатый с помощью bzip2, который функционально идентичен более распространенному формату .bz2. Используется тот же алгоритм сжатия, та же структура двоичного потока и тот же инструментарий; .bz - это просто старое, более короткое соглашение о расширении для вывода bzip2. Все программное обеспечение, работающее с .bz2, одинаково обрабатывает и .bz.
bzip2 сжимает один поток данных, используя преобразование Барроуза - Уилера (BWT), за которым следует кодирование «move-to-front», кодирование длин серий (RLE) и кодирование Хаффмана. Этот многоступенчатый конвейер обычно обеспечивает лучшую степень сжатия, чем .gz для текста и исходного кода, ценой более низкой скорости сжатия и декомпрессии.
Файл начинается с 3-байтовой сигнатуры BZh (hex 42 5A 68), за которой следует ASCII-цифра от 1 до 9, указывающая размер блока в сотнях килобайт (9 = 900 КБ по умолчанию). Каждый сжатый блок содержит независимую контрольную сумму CRC-32; файл заканчивается контрольной суммой CRC-32 на уровне потока, что позволяет утилите bzip2recover извлекать неповрежденные блоки из частично поврежденного файла.
Как и gzip, bzip2 сжимает один файловый поток без объединения нескольких файлов. Чтобы сжать каталог, сначала упакуйте файлы в архив .tar, создав .tar.bz2 (также .tbz2).
- bzip2 был создан Джулианом Сьюардом; версия 1.0.8 (2019) является текущим стабильным выпуском.
- Формат все чаще вытесняется xz/LZMA и zstd из-за лучшей степени сжатия или скорости.
- Команда
bunzip2и флагtar -jраспаковывают файлы.bzи.bz2.
Безопасность и защита
РИСК: LOWbzip2 имеет открытый исходный код, и формат безопасен; файл .bz не может выполняться сам по себе. Применяются стандартные меры предосторожности для архивов: .bz из ненадежного источника может содержать вредоносный исполняемый файл, обнаруживаемый после извлечения - сканируйте содержимое перед запуском чего-либо. Крошечный .bz может развернуться в очень большой файл («архивная бомба»), поэтому будьте осторожны с подозрительно маленькими архивами.
Детали формата
в двух словахПрограммы, открывающие файлы BZ
Технические подробности
глубокая спецификация| Сигнатура файла | 42 5A 68 («BZh») со смещением 0, за которой следует ASCII-цифра 1-9 (размер блока: n × 100 КБ) |
| Алгоритм сжатия | Преобразование Барроуза - Уилера (BWT) + move-to-front + кодирование длин серий + кодирование Хаффмана |
| Размер блока | 100 КБ - 900 КБ (устанавливается при сжатии флагами от -1 до -9; -9 = 900 КБ по умолчанию) |
| Целостность CRC | CRC-32 на каждый сжатый блок + CRC-32 в конце потока |
| Контейнер | Нет - одиночный сжатый поток; не объединяет несколько файлов |
| MIME-тип | application/x-bzip (также application/x-bzip2) |
| Кодировка | Двоичный битовый поток; выравнивание порядка байтов не требуется |
| Частичное восстановление | bzip2recover извлекает неповрежденные блоки из поврежденного или усеченного файла |
| Использование для нескольких файлов | Комбинируйте с .tar для создания .tar.bz2 (.tbz2) для сжатия нескольких файлов |
| Степень сжатия по сравнению с gzip | Обычно на 10-20% лучше для текста/исходного кода; значительно более медленное сжатие и декомпрессия |
| Типичная скорость декомпрессии | ~20-30 МБ/с на одно ядро (гораздо медленнее, чем zstd или lz4) |
| Стабильность формата | Не менялся с версии bzip2 1.0 (2000); все потоки BZh разных версий взаимно совместимы |
| Устаревший вариант | BZ0 (bzip до версии 1.0) использовал арифметическое кодирование - устарел, не читается bzip2 1.x |
| Современные альтернативы | xz/LZMA для лучшей степени сжатия; zstd для лучшей скорости; оба постепенно вытесняют bzip2 |
| Выпущен | 1996 (bzip 0.21); bzip2 1.0 in 2000 |
| Последняя версия | bzip2 1.0.8 (2019); format unchanged since 1.0 |
| Открыть стандартное | Да · без роялти |
| Спецификация | sourceware.org |
Конвертации BZ
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах BZ.