bzip2 — безкоштовна вільна утиліта командного рядка (а також алгоритм) з відкритим початковим кодом для стиснення даних.

bzip2
Тип стиснення даних
Розробник Julian Seward
Стабільний випуск 1.0.5 (17 березня 2008)
Операційна система Cross-platform
Мова програмування C
Ліцензія BSD
Онлайн-документація bzip.org/1.0.5/bzip2-manual-1.0.5.html
Репозиторій sourceware.org/git/bzip2.git
Вебсайт bzip.org

Розроблена і вперше опублікована Джуліаном Сьюардом[en] в липні 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 перелікфайлів

Розпаковування tar-рахіва, стисненого bzip2 за допомогою GNU tar:

tar -xvjf назваархіва.tar.bz2

Примітки

ред.

Посилання

ред.