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 в терминале, задавайте свои вопросы в комментариях.