Использование bzip2 для сжатия файлов Linux

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

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

Пользователи Windows уже будут знать, что такое zip-файл, и поэтому команды «zip» и «unzip» будут использоваться для сжатия и распаковки файлов в формате «zip».

Другой способ сжатия файлов — использовать команду «gzip», а для распаковки файла с расширением «gz» вы можете использовать команду «gunzip».

В этом руководстве мы покажем вам еще одну команду сжатия, которая называется «bzip2».

Зачем использовать «bzip2» над «gzip»?

Команда «gzip» использует метод сжатия LZ77. Инструмент сжатия «bzip2» использует алгоритм «Burrows-Wheeler».

Так какой метод вы должны использовать для сжатия файла?

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

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

Стоит указать на «команду lzmash». Это эквивалентно выполнению команды «gzip» с уровнем сжатия, установленным в «-9», или, если говорить по-английски, «наиболее сжатым».

По умолчанию команда «lzmash» занимает больше времени, чем команда «gzip», но размер файла значительно уменьшается и он меньше, чем эквивалент «bzip2». Стоит также отметить, что для этого требуется меньше времени.

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

В любом случае, команда «gzip» немного лучше в обоих случаях.

Сжатие файлов с помощью ‘bzip2’

Чтобы сжать файл с использованием формата «bzip2», выполните следующую команду:

имя файла bzip2

Файл будет сжат и теперь будет иметь расширение «.bz2»

«Bzip2» всегда будет пытаться сжать файл, даже если в результате файл станет больше. Это может произойти, когда вы сжимаете файл, который уже был сжат.

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

Например, если у вас есть тип файла с именем «file1», а в папке уже есть файл с именем «file1.bz2», то после выполнения команды «bzip» вы увидите следующий вывод:

bzip2: выходной файл file1.bz2 уже существует

Как распаковать файлы

Существует много разных способов распаковать файлы с расширением «bz2».

Вы можете использовать команду «bzip2» следующим образом:

bzip2 -d filename.bz2

Это распакует файл и удалит расширение «bz2».

Если при распаковке файла это приведет к перезаписи файла с тем же именем, вы увидите следующую ошибку:

bzip2: имя файла выходного файла уже существует

Лучший способ распаковать файлы с расширением «bz2» — использовать команду «bunzip2». С помощью этой команды вам не нужно указывать какие-либо ключи, как показано ниже:

bunzip2 filename.bz2

Команда «bunzip2» выполняется точно так же, как и команда «bzip2» с ключом минус d (-d).

Команда «bunzip2» может извлечь любой допустимый файл, сжатый с помощью «bzip» или «bzip2». Помимо распаковки обычных файлов, он также может распаковывать tar-файлы, которые были сжаты с помощью команды «bzip2».

По умолчанию файлы tar, сжатые с помощью команды «bzip2», будут иметь расширение «.tbz2». Когда вы распаковываете этот файл с помощью команды «bunzip2», имя файла становится «filename.tar».

Если у вас есть действительный файл, который был сжат с помощью «bzip2», но имеет расширение, отличное от «bzip2», то распакует файл, но добавит расширение «.out» в конец файла. Например, «myfile.myf» станет «myfile.out».

Как заставить файлы сжиматься

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

bzip2 -f myfile

Если у вас есть файл с именем «myfile», а другой — с именем «myfile.bz2», то файл «myfile.bz2» будет перезаписан при сжатии «myfile».

Как сохранить оба файла

Если вы хотите сохранить сжатый файл и сжатый файл, вы можете использовать следующую команду:

bzip2 -k myfile

Это сохранит файл «myfile», но также сожмет его и создаст файл «myfile.bz2».

Вы также можете использовать ключ минус k (-k) с командой «bunzip2», чтобы сохранить сжатый файл и несжатый файл при распаковке файла.

Проверьте правильность файла «bz2»

Вы можете проверить, сжат ли файл с помощью механизма сжатия «bzip2», используя следующую команду:

bzip2 -t filename.bz2

Если файл является допустимым файлом, то никакие выходные данные не будут возвращены, но если файл недействителен, вы получите сообщение об этом. 

Используйте меньше памяти при сжатии файлов

Если команда «bzip2» использует слишком много ресурсов при сжатии файла, вы можете уменьшить влияние, указав параметр минус s (-s) следующим образом:

bzip2 -s filename.bz2

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

Получите больше информации при сжатии файлов

По умолчанию, когда вы запускаете команды «bzip2» или «bunzip2», вы не получаете никакого вывода, а новый файл просто появляется.

Если вы хотите знать, что происходит, когда вы сжимаете или распаковываете файл, вы можете получить более подробный вывод, задав переключатель минус v (-v) следующим образом:

bzip2 -v имя файла

Вывод будет выглядеть следующим образом:

имя файла: 1,172: 1 6,872 бит / байт 14,66% сохранено 50341 в 42961 из

Важными частями являются сохраненный процент, размер ввода и размер вывода.

Восстановить сломанные файлы

Если у вас есть поврежденный файл «bz2», то программа для восстановления и восстановления данных выглядит следующим образом:

bzip2recover filename.bz2
Ссылка на основную публикацию