На цій сторінці показано неперевірені зміни
| Тип | стиснення даних |
|---|---|
| Розробник | 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 |
bzip2 — безкоштовнавільнаутиліта командного рядка (а такожалгоритм) з відкритим початковим кодом длястиснення даних.
Розроблена і вперше опублікованаДжуліаном Сьюардом[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