bzip2

Материал из свободной русской энциклопедии «Традиция»
Перейти к навигации Перейти к поиску

bzip2 — бесплатная свободная утилита командной строки (а также алгоритм) с открытым исходным кодом для сжатия данных.

Разработана и и впервые опубликована Джулианом Сьюардом (англ. Julian Seward) в июле 1996 (версия 0.15). Стабильность и популярность компрессора росли в течение нескольких лет, и версия 1.0 была опубликована в конце 2000 года.

Эффективность[править | править код]

В соответствии с традициями UNIX‐программирования, bzip2 выполняет только одну функцию: сжатие и распаковка одного файла. При этом к названию файла по умолчанию добавляется расширение .bz2. Для упаковки нескольких файлов их обычно сперва архивируют в один файл утилитой tar, и затем уже сжимают bzip2. Такие архивы обычно имеют расширение .tar.bz2.

bzip2 сжимает большинство файлов эффективнее, но медленнее, чем более традиционные gzip или ZIP. В этом отношении он похож на другие современные алгоритмы сжатия.

В некоторых случаях bzip2 проигрывает архиваторам 7-Zip (LZMA) и RAR по абсолютной эффективности сжатия. Согласно автору, bzip2 проигрывает от 10 до 15 процентов наилучшему классу алгоритмов сжатия данных, известных на данный момент (PPM), но при этом в два раза быстрее при сжатии и в 6 раз быстрее при распаковке.

bzip2 использует преобразование Барроуза-Уилера (англ. Burrows-Wheeler transform, сортировка блоков) для превращения последовательностей многократно чередующихся символов в строки одинаковых символов, затем применяет преобразование MTF (англ. move-to-front), и в конце кодирование Хаффмана. Блоки в bzip2 имеют одинаковый размер в несжатом потоке. Размер блока можно выбрать при помощи аргумента командной строки, и он помечается в сжатом тексте произвольно выбранной последовательностью битов представления числа Пи.

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

Использование[править | править код]

bzip2 можно использовать как в комбинации с tar, так и отдельно: bzip2 file для сжатия и bzip2 -d file.bz2 для распаковки (вместо bzip2 -d можно использовать альтернативное название bunzip2).

Аргументы командной строки bzip2 в основном такие же, как и у gzip. Так, для распаковки архива tar, сжатого bzip2:

bzip2 -cd имяархива.tar.bz2 | tar -xvf -

Для создания сжатого bzip2 архива tar:

tar -cvf - файлы | bzip2 -9 > имяархива.tar.bz2

Версия GNU tar поддерживает флаг -j, который позволяет создавать tar.bz2 файлы без использования перенаправлений ввода-вывода (англ. pipeline):

tar -cvjf имяархива.tar.bz2 списокфайлов

Распаковка в GNU tar:

tar -xvjf имяархива.tar.bz2

См. также[править | править код]

Внешние ссылки[править | править код]

Архиваторы
Open Source: 7-Zip • Ark • File Roller • KGB Archiver • PeaZip • The Unarchiver

Freeware: DGCA • Filzip • GCA • IZArc • TUGZip • QuickZip • Zipeg • ZipGenius


Проприетарные: ALZip • BOMArchiveHelper • MacBinary • PowerArchiver • Squeez • StuffIt • WinAce • WinRAR • WinRK • WinZip


Командная строка: ARC • ARJ • JAR • Info-ZIP • LHA • NABOB • PAQ • PKZIP • RAR • SBC • Tar • UPX


Компрессоры: bzip2 • compress • gzip • lzop