Гайд по bzmore в Linux: просмотр файлов bzip2 без распаковки

Введение

В процессе администрирования Linux-серверов постоянная декомпрессия тяжелых архивов bzip2 (.bz2) только ради чтения данных нерационально расходует свободное дисковое пространство и замедляет рабочий процесс. Утилита bzmore решает данную проблему, обеспечивая удобный постраничный просмотр упакованных текстовых логов и конфигураций прямо в окне терминала без промежуточного извлечения. Ниже подробно рассматриваются ключевые приемы взаимодействия с bzmore и сценарии оперативного анализа сжатых файлов на практике.

Подготовка окружения и создание тестового архива

Перед началом работы убедимся в актуальности списков пакетов репозитория и наличии в системе самого архиватора bzip2:

sudo apt-get update -qq && sudo apt-get install -y bzip2

Для имитации боевых условий сформируем тестовый файл журнала service.log, заполнив его событиями с помощью команды echo:

echo -e ‘2026-10-15 01:00:01 INFO [Auth] User admin logged in
2026-10-15 01:00:05 WARN [Disk] Usage exceeds 80%
2026-10-15 01:00:10 ERROR [DB] Connection timeout’ > service.log

Стандартное поведение архиватора предполагает удаление исходника, поэтому применим ключ -k, гарантирующий сохранение оригинального файла service.log рядом со сжатым .bz2:

bzip2 -k service.log

Сравним метаданные и размеры полученного архива и несжатого файла посредством команды ls -lh service.log*:

ls -lh service.log*

Базовый синтаксис bzmore: чтение данных на лету

Проверим статус созданного архива bzip2 перед его открытием через ls -l service.log.bz2:

ls -l service.log.bz2

Команда bzmore разработана для моментального вывода текстового содержимого файлов .bz2 без создания временных копий на накопителе.
После ввода bzmore service.log.bz2 консоль выводит имя просматриваемого объекта в первой строке, а затем отображает распакованный текстовый поток:

bzmore service.log.bz2

Навигация и постраничный пейджинг объемных архивов

Для демонстрации механизма постраничного разделения сгенерируем длинный лог на 120 записей и выполним его компрессию командой seq 1 120 | sed 's/^/2026-10-15 [EventLog] Process ID #/' > large_events.log && bzip2 -f large_events.log:

seq 1 120 | sed ’s/^/2026-10-15 [EventLog] Process ID #/’ > large_events.log && bzip2 -f large_events.log

При выполнении bzmore large_events.log.bz2 вывод автоматически фрагментируется по размеру текущего окна консоли.
Управление навигацией повторяет классический пейджер: нажатие клавиши «Пробел» прокручивает документ на страницу вниз, клавиша «Enter» выполняет сдвиг на одну строку, а клавиша q мгновенно прерывает сеанс просмотра и возвращает в командный интерфейс.

bzmore large_events.log.bz2

Пакетный просмотр нескольких файлов и сравнение с bzless

Инструмент поддерживает последовательную обработку группы архивов. Создадим два независимых лог-файла и запакуем их одной инструкцией: echo 'Node A: Status Healthy' > node_a.log && echo 'Node B: Status Degraded' > node_b.log && bzip2 -f node_a.log node_b.log:

echo ‘Node A: Status Healthy’ > node_a.log && echo ‘Node B: Status Degraded’ > node_b.log && bzip2 -f node_a.log node_b.log

Передав список целевых файлов в аргументах bzmore node_a.log.bz2 node_b.log.bz2, администратор получает непрерывную ленту данных.
Как только завершится вывод первого файла, в нижней части экрана появится уведомление --More--(Next file: node_b.log.bz2). Нажатие пробела переключит контекст на следующий архив.
Необходимо учитывать ограничение архитектуры: bzmore обеспечивает движение только вперед. Если инфраструктурный анализ требует возврата к предыдущим экранам или сложного двунаправленного поиска, целесообразно переключиться на использование утилиты bzless.

bzmore node_a.log.bz2 node_b.log.bz2

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