bzip2

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску

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)[1], но при этом в два раза быстрее при сжатии и в 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

Современные версии GNU tar имеют функцию автоматического распознавания типа архива, и поэтому можно написать:

tar xvf имяархива.tar.bz2

Примечания

  1. На данный момент наиболее эффективными компрессорами являются, всё же, различные варианты PAQ, однако использование данного алгоритма крайне затруднено по причине очень низкой производительности, сжатие требует больших временных затрат.

См. также

Ссылки

ar:بزيب2 ca:Bzip2 cs:Bzip2 de:Bzip2 en:Bzip2 es:Bzip2 fa:بی‌زیپ۲ fr:Bzip2 it:Bzip2 ja:Bzip2 ko:Bzip2 nl:Bzip2 pl:Bzip2 pt:Bzip2 sv:Bzip2 tr:Bzip2 uk:Bzip2 zh:Bzip2

Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....