Bzip2 — это алгоритм сжатия файлов, часто использующийся в связке с tar. Дело в том, что сам tar не умеет уменьшать вес архива — эта программа всего лишь упаковывает файлы и папки в несжатом виде.
После этого в действие вступает bzip2, сжимая готовый файл вида *.tar и присваивая ему название *.tar.bz2 либо *.tbz2. В этой статье мы расскажем вам распаковать bz2 linux с помощью команды tar.
Содержание статьи
Как распаковать bz2 в Linux
1. Обычная распаковка bz2
В большинстве дистрибутивов Linux утилита tar установлена «из коробки». Поэтому для распаковки файлов из архива tar.bz2 достаточно открыть терминал и ввести команду tar с использованием опций --extract (сокращенно -x), которая непосредственно указывает на действие с архивом, а также -f, после которой следует название архива. В некоторых случаях может понадобиться sudo в начале строки.
tar -x -j -f archive.tar.bz2
Если по какой-либо причине работа с терминалом невозможна, следует воспользоваться возможностями файлового менеджера — навести курсор на файл, который нужно извлечь, щелкнуть правой кнопкой мыши и выбрать команду Извлечь либо Извлечь в текущую папку.
Чтобы видеть, какие именно файлы были извлечены, понадобится опция -v, а строка в терминале будет выглядеть так:
tar -xvf archive.tar.bz2
По умолчанию tar извлекает файлы в текущую директорию (как правило, это домашняя папка). Чтобы назначить другое место, куда будет помещено содержимое архива, нужно использовать опцию -С (--directory). Например, для директории /user/losst/new-folder запись должна быть такой:
tar -xjf archive.tar.bz2 -C /home/losst/new-folder
2. Выбор файлов для распаковки
Если нужно извлечь из архива определенные файлы, а не распаковать его целиком, следует после названия архива перечислить названия этих файлов, разделяя их пробелом:
tar -xjf archive.tar.bz2 file1 file2
Когда внутри архива содержатся папки, а требуемые файлы расположены внутри них, придется указывать не только названия, но и полный путь к файлам. Просмотреть структуру архива можно с помощью опции --list (-t) — как это сделать будет рассказано ниже.
Извлечение определенных папок происходит по аналогичной схеме:
tar -xjf archive.tar.bz2 dir1 dir2
При попытке извлечь файл, которого нет в архиве, появится сообщение об ошибке.
Для извлечения группы файлов, в названиях которых есть один и тот же элемент, существует опция --wildcards. Групповым символом шаблона служит звездочка, а сам шаблон необходимо выделять кавычками. Вот пример для извлечения документов, которые имеют расширение odt:
tar -jf archive.tar.bz2 --wildcards '*.odt'
3. Распаковка в потоке
Извлекая сжатые файлы из tar.bz2 с использованием стандартного ввода нужно указывать опцию -j. Она указывает на то, что файл был сжат именно bz2.
В данном примере исходные файлы Vim загружаются при помощи команды wget с последующим выводом в команду tar:
wget -c ftp://ftp.vim.org/pub/vim/unix/vim-8.1.tar.bz2 -O - | sudo tar -xj
Если опция -j не будет указана, tar сообщит об этом и укажет способ исправления ошибки примерно так tar: Archive is compressed. Use -j option.
4. Просмотр структуры архива
Для просмотра структуры архива tar bz2 linux предназначена опция --list (-t):
tar -tf archive.tar.bz2
Если добавить еще и опцию --verbose (-v), tar покажет более полную информацию о файлах:
tar -tvf archive.tar.bz2
Выводы
Tar дает огромный выбор возможностей для распаковки архивов tar.bz2. Мы постарались рассказать о них как можно подробнее, но если у вас возникают какие-то сложности с использованием опций tar в терминале, задавайте свои вопросы в комментариях.
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали












Как всегда, все просто и понятно.
Единственный сайт от которого разрешены уведомления в браузере )).
Спасибо за раскрытие очень сложных для понимания тем.
Ждём не дождемся, когда выпустите статью про архивы .tar.xz
Не претендую на истину в последней инстанции, но хочу отметить следующий момент.
Многие пользователи Линукса пришли из лагеря Виндоуса. В Виндовсе термины "упаковка", "архивирование" и "сжатие" обозначают одно действие -- создание сжатого файла, содержащего один или несколько файлов и/или папок. Степень сжатия может быть разная -- от несжатого совсем до максимального. Но как правило сжатие происходит. Отсюда у Виндовс-пользователей выработалось стойкое понятие, что "упаковка", "архивирование" и "сжатие" -- это одно и тоже. Только разными словами.
В Линуксе всё немножко иначе. В Линуксе понятия "упаковка" и "архивирование" обозначают только объединение нескольких файлов и директориев в один файл. Про сжатие информации ничего не говориться, оно вообще отсутствует как класс. Это сложилось исторически давным давно, в эпоху UNIX-а и больших накопителей на магнитной ленте. В те времена ни о каких компрессорах/декомпрессорах не было и речи. А вот понятие "сжатие" обозначает именно уменьшение объёма информации. Сжатие происходит обычно после архивирования. Но поскольку эти два раздельных процесса (архивирование и сжатие) выполняются для Линукс-пользователя за одну команду, создаётся ложное представление, что В Линуксе всё работает точно так же, как в Виндоусе.
Это не опасное заблуждение, можно было и не заострять на этом внимание. Однако, понимание природы вещей -- это то, что отличает профессионала от дилетанта. Чем лучше вы знаете Линукс, тем больше он вам нравится. И тем меньше вам будет хотеться использовать сами-знаете-что.
Всем добра!
стоит иметь ввиду, что операционные системы на базе ядра *Linux* многогранны и решают несколько видов типовых задач, если говорить об упаковке и сжатии. наследие - это tar и целый набор компрессоров, которые tar умеет подключать налету. но архивирование при помощи *tar* имеет место, когда вы уверены, что ваш архив будет использован именно в *Linux* окружении. и обстоятельства не всегда складываются так. иногда ваш архив должен быть легко и просто распакован в других средах... (зло не упоминаю всуе.) и на этот случай любая операционная система на базе *Linux* имеет целый ряд архиваторов, а именно: zip, 7z, rar etc. эти архиваторы не сохраняют нативные для *Linux* атрибуты файлов, но их архивы без труда распаковываются на других системах. (зло не упоминаю всуе). так вот в этом случае упаковка и сжатие имеет тот же самый характер как и в зле, и выполняется одним единственным процессом. поэтому расставляя точки над i стоит смотреть по сторонам и различать все детали и частности.
файл любого типа может быть упакован при помощи bzip2. а вот каталог - нене, понадобится tar - который и делает из каталога или группы файлов один файл, при этом архивируя атрибуты и обеспечивая безпотерьное извлечение всех упакованных данных в архив данных.
Истину глаголишь.