Введение
Формат .bz2 традиционно славится великолепным коэффициентом сжатия в экосистеме Linux. В этой статье мы подробно разберем практические приемы распаковки таких архивов с помощью утилиты bunzip2. Вы познакомитесь с базовым синтаксисом, научитесь предотвращать автоматическое удаление исходных файлов и освоите потоковую обработку данных без извлечения на диск.
Установка пакета и базовое извлечение файлов
Если в вашей системе отсутствует необходимый инструментарий, развернем его через пакетный менеджер командой apt-get update -qq && apt-get install -y bzip2.

Сформируем тестовый текстовый документ и сразу упакуем его для дальнейших экспериментов с помощью связки echo 'Hello Linux bunzip2 tutorial' > sample1.txt && bzip2 sample1.txt.

Для возврата содержимого в исходное состояние используется синтаксис bunzip2 sample1.txt.bz2.
Обратите внимание на штатное поведение инструмента: после успешного извлечения исходный сжатый архив .bz2 стирается из файловой системы, а на его месте появляется распакованный файл.
⚙️ [Полезные флаги утилиты]
-k : оставляет сжатый контейнер нетронутым после завершения декомпрессии.-f : форсирует перезапись целевого файла, если объект с таким именем уже существует.-v : включает подробный вывод сведений о прогрессе и степени сжатия.-c : направляет поток данных в stdout, исключая запись распакованного файла на диск.-t : запускает диагностику целостности архива без реального извлечения информации.

Убедимся в корректности восстановления структуры данных, вызвав cat sample1.txt.

Сохранение исходного архива после декомпрессии (флаг -k)
Чтобы избежать случайной потери исходного .bz2, настроим окружение новой тестовой записью через echo 'Keep original archive test' > keep_test.txt && bzip2 keep_test.txt.

Конструкция bunzip2 -k keep_test.txt.bz2 задействует параметр -k (keep), предотвращая уничтожение архива после извлечения данных.

Инспекция директории через ls -lh keep_test* наглядно подтверждает присутствие обоих файлов — распакованного keep_test.txt и нетронутого архива keep_test.txt.bz2.

Детализация процесса и принудительная перезапись (ключи -v, -f)
Создадим ситуацию с потенциальным конфликтом имен, сгенерировав новый файл с сохранением источника: echo 'Force overwrite test content' > force_test.txt && bzip2 -k force_test.txt.

Команда bunzip2 -vf force_test.txt.bz2 комбинирует флаг -f, исключающий интерактивные запросы при замене существующего force_test.txt, и ключ -v, транслирующий детальную техническую сводку операции прямо в консоль.

Просмотр содержимого на лету через стандартный вывод (опция -c)
Нередко возникает задача ознакомиться с содержимым логов или текстовых данных без их распаковки на диск. Подготовим пример: echo 'Stream and preview test data' > stream_test.txt && bzip2 stream_test.txt.

Инструкция bunzip2 -c stream_test.txt.bz2 перенаправляет декодированные байты напрямую в стандартный поток (stdout).
Этот подход идеален для мгновенной проверки данных либо для быстрой передачи потока по конвейеру (|) в утилиты вроде grep, less или awk.

Контрольная проверка каталога через ls -lh stream_test.txt.bz2 демонстрирует, что при потоковом чтении сам контейнер остается в полной сохранности на накопителе.

Мы подробно рассмотрели ключевые сценарии работы с утилитой bunzip2 в среде Ubuntu. Грамотное комбинирование рассмотренных флагов позволит вам оптимизировать повседневные задачи администрирования и автоматизировать обработку архивов.