bunzip2 Linux Command: как это использовать

Команда Linux bunzip2 — это компрессор файлов с сортировкой блоков, который можно использовать для сжатия и распаковки данных, в зависимости от того, как вы их используете.

Когда вы выполняете bzip2 Сама по себе команда без каких-либо опций, действие по умолчанию, которое система предпримет, — это сжатие данных. bunzip2 распаковывает по умолчанию, и bzcat распаковывает в стандартный вывод.

Опции команд Bunzip2 для Linux

Список параметров команды bunzip2
вариантобъяснение
-c —stdoutСжать или распаковать до стандартного выхода.
-d — распаковкаПринудительная декомпрессия. bzip2, bunzip2 и bzcat — это действительно одна и та же программа, и решение о том, какие действия нужно предпринять, зависит от того, какое имя используется. Этот флаг переопределяет этот механизм и заставляет bzip2 распаковываться.
-z —compressДополнение к -d: принудительное сжатие, независимо от имени вызова.
-т — тестПроверьте целостность указанных файлов, но не распаковывайте их. Это действительно выполняет пробную декомпрессию и выбрасывает результат.
-сила

Принудительная перезапись выходных файлов. Обычно bzip2 не перезаписывает существующие выходные файлы. Также вынуждает bzip2 разрывать жесткие ссылки на файлы, что в противном случае было бы невозможно.

bzip2 обычно отказывается распаковывать файлы, которые не имеют правильных байтов магического заголовка. Однако, если принудительно (-f), он пропустит такие файлы без изменений. Вот как ведет себя GNU gzip.

-k — держатьСохранять (не удалять) входные файлы во время сжатия или распаковки.
-s —small

Сокращение использования памяти для сжатия, распаковки и тестирования. Файлы распаковываются и тестируются с использованием модифицированного алгоритма, который требует только 2,5 байта на блок-байт. Это означает, что любой файл может быть распакован в 2300 КБ памяти, хотя примерно на половину нормальной скорости.

Во время сжатия -s выбирает размер блока 200 КБ, что ограничивает использование памяти примерно одним и тем же числом за счет вашей степени сжатия. Короче говоря, если на вашей машине недостаточно памяти (8 мегабайт или меньше), используйте -s для всего. См. УПРАВЛЕНИЕ ПАМЯТЬЮ ниже.

-q — тихийПодавить несущественные предупреждающие сообщения. Сообщения, относящиеся к ошибкам ввода-вывода и другим критическим событиям, не будут подавлены.
-V — ГлаголПодробный режим — показывает степень сжатия для каждого обрабатываемого файла. Далее -v увеличивает уровень многословия, выпуская много информации, которая в первую очередь представляет интерес для диагностических целей.
-L —licenseПоказать версию программного обеспечения, условия лицензии.
-V — версияПоказать версию программного обеспечения, условия лицензии.
-1 или же -9

Установите размер блока 100 к, 200 к .. 900 к при сжатии. Не оказывает влияния при распаковке.

—быстрый (псевдоним для -1) а также —Лучший (псевдоним для -9) в первую очередь для совместимости с GNU gzip. В частности, —быстрый не делает вещи значительно быстрее. А также —Лучший просто выбирает поведение по умолчанию.

Обрабатывает все последующие аргументы как имена файлов, даже если они начинаются с тире. Это так, что вы можете обрабатывать файлы с именами, начинающимися с тире, например: bzip2 — -myfilename.

—повторяющиеся быстро а также —повторяющиеся лучше избыточны в версиях 0.9.5 и выше. Они предоставили некоторый грубый контроль над поведением алгоритма сортировки в более ранних версиях, что иногда было полезно. 0.9.5 и выше имеют улучшенный алгоритм, который делает эти флаги неактуальными.

Используйте команду man (% man), чтобы увидеть, как команда используется на вашем компьютере.

Изучение компрессии bunzip2

bzip2 сжимает файлы с использованием алгоритма сжатия текста с сортировкой блоков Burrows-Wheeler и кодированием Хаффмана. Сжатие обычно значительно лучше, чем при использовании более традиционных компрессоров на базе LZ77 / LZ78, и приближается к характеристикам статистических компрессоров семейства PPM.

Параметры командной строки намеренно очень похожи на параметры GNU gzip, но они не идентичны.

bzip2 ожидает список имен файлов, сопровождающих флаги командной строки. Каждый файл заменяется сжатой версией самого себя с именем «original_name.bz2». Каждый сжатый файл имеет ту же дату изменения, разрешения и, когда это возможно, право собственности на соответствующий оригинал, чтобы эти свойства можно было правильно восстановить во время распаковки.

Обработка имен файлов наивна в том смысле, что не существует механизма сохранения исходных имен файлов, разрешений, владельцев или дат в файловых системах, в которых отсутствуют эти концепции или имеются серьезные ограничения по длине имени файла, такие как MS-DOS.

bzip2 и bunzip2 по умолчанию не перезаписывают существующие файлы. Если вы хотите, чтобы это произошло, укажите флаг.

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

bunzip2 (или bzip2 -d) распаковывает все указанные файлы. Файлы, которые не были созданы bzip2, будут обнаружены и проигнорированы, и будет выдано предупреждение. bzip2 пытается угадать имя файла для распакованного файла из файла сжатого файла следующим образом:

  • filename.bz2 становится именем файла
  • filename.bz становится именем файла
  • filename.tbz2 становится filename.tar
  • filename.tbz становится filename.tar
  • anyothername становится anyothername.out

Если файл не заканчивается на одно из распознанных расширений файла — BZ2, BZ, TBZ2 или TBZ — bzip2 жалуется, что не может угадать имя исходного файла, и использует исходное имя с добавленным .out.

Как и в случае со сжатием, отсутствие имени файла приводит к распаковке из стандартного ввода в стандартный вывод.

bunzip2 правильно распакует файл, который является объединением двух или более сжатых файлов. Результатом является объединение соответствующих несжатых файлов. Проверка целостности (-T) сцепленных сжатых файлов также поддерживается.

Вы также можете сжать или распаковать файлы в стандартный вывод, предоставив флаг. Несколько файлов могут быть сжаты и распакованы, как это. Полученные результаты поступают последовательно на стандартный вывод. Сжатие нескольких файлов таким способом генерирует поток, содержащий несколько представлений сжатых файлов.

Такой поток может быть правильно распакован только с помощью bzip2version 0.9.0 или новее. Более ранние версии bzip2 остановятся после распаковки первого файла в потоке.

bzcat (или bzip2 -dc) распаковывает все указанные файлы в стандартный вывод.

bzip2 будет читать аргументы из переменных окружения BZIP2 и BZIP в указанном порядке и обрабатывать их до того, как аргументы будут прочитаны из командной строки. Это дает удобный способ предоставить аргументы по умолчанию.

Сжатие всегда выполняется, даже если сжатый файл немного больше исходного. Файлы размером менее 100 байтов имеют тенденцию к увеличению, поскольку механизм сжатия имеет постоянную служебную информацию в области 50 байтов. Случайные данные (включая выходные данные большинства файловых компрессоров) кодируются со скоростью около 8,05 бит на байт, что дает расширение около 0,5 процента.

В качестве самопроверки вашей защиты bzip2 использует 32-битные CRC, чтобы убедиться, что распакованная версия файла идентична оригинальной. Это защищает от повреждения сжатых данных и от необнаруженных ошибок в bzip2 (надеюсь, очень маловероятно).

Вероятность того, что повреждение данных останется незамеченным, микроскопическая, примерно один шанс из четырех миллиардов на каждый обработанный файл. Имейте в виду, однако, что проверка происходит при распаковке, поэтому она может только сказать вам, что что-то не так. Это не может помочь вам восстановить исходные несжатые данные.

Вы можете использовать bzip2recover, чтобы попытаться восстановить данные из поврежденных файлов.

Ссылка на основную публикацию