Введение
Команда tar позволяет создавать и распаковывать tar-архивы. Он поддерживает широкий спектр программ сжатия, таких как gzip, bzip2, lzip, lzma, lzop, xz и compress.
Bzip2 — один из самых популярных алгоритмов сжатия tar-файлов. По соглашению имя tar-архива, сжатого с помощью bzip2, заканчивается на .tar.bz2 или .tbz2.
В этом уроке мы объясним, как извлекать (или распаковывать) архивы. tar.bz2 и. tbz2 с помощью команды tar.
Извлечение файлов tar.bz2
Большинство дистрибутивов Linux и macOS поставляются с предустановленной по умолчанию утилитой tar.
Чтобы извлечь файл tar.bz2, используйте параметр --extract ( -x ) и укажите имя файла архива с опцией -f:
tar -xf archive.tar.bz2
Команда tar автоматически определяет тип сжатия и извлекает архив. Эту же команду можно использовать для извлечения архивов tar, сжатых с помощью других алгоритмов, таких как .tar.gz.
Если вы являетесь пользователем рабочего стола и вам не нравится командная строка, вы можете использовать файловый менеджер. Чтобы извлечь (разархивировать) файл tar.bz2, просто щелкните правой кнопкой мыши файл, который хотите извлечь, и выберите «Извлечь». Пользователям Windows потребуется установить инструмент для извлечения, например 7zip, для извлечения файлов tar.bz2.
Для более подробного вывода используйте параметр -v. Эта опция позволяет просматривать имена извлеченных файлов на терминале.
tar -xvf archive.tar.bz2
По умолчанию tar извлекает содержимое архива в текущий рабочий каталог. Используйте параметр --directory ( -C ) для извлечения архивных файлов в определенный каталог.
Например, чтобы извлечь содержимое архива в каталог /home/noviello/files, введите:
tar -xf archive.tar.bz2 -C /home/noviello/files
Извлечение определенных файлов из файла tar.bz2
Чтобы извлечь один или несколько определенных файлов из файла tar.bz2, добавьте разделенный пробелами список имен файлов для извлечения после имени архива:
tar -xf archive.tar.bz2 file1 file2
При извлечении файлов вам необходимо указать точные имена, включая путь, который вы можете просмотреть с помощью параметра --list ( -t ).
Извлечение одного или нескольких каталогов из архива эквивалентно извлечению нескольких файлов:
tar -xf archive.tar.bz2 dir1 dir2
Если вы попытаетесь извлечь файл, которого нет в архиве, появится сообщение об ошибке, подобное следующему:
tar -xf archive.tar.bz2 README
tar: README: Not found in archive
tar: Exiting with failure status due to previous errors
Параметр --wildcards позволяет извлекать файлы из файла tar.bz2 на основе шаблона подстановочных знаков. Шаблон должен быть заключен в кавычки, чтобы оболочка не могла его интерпретировать.
Например, чтобы извлечь только файлы, имена которых заканчиваются на .md, вы должны использовать:
tar -xf archive.tar.bz2 --wildcards '*.md'
Извлечение файла tar.bz2 из стандартного ввода
При извлечении сжатого файла tar.bz2 путем чтения архива со стандартного ввода (обычно по конвейеру) необходимо указать параметр распаковки. Параметр -j используется для объявления того, что файл сжат с помощью bzip2.
В следующем примере мы загружаем исходный код Vim с помощью команды wget и перенаправляем его вывод на команду tar:
wget -c ftp://ftp.vim.org/pub/vim/unix/vim-8.1.tar.bz2 -O - | sudo tar -xj
Если вы не укажете параметр распаковки, tar покажет вам, какой вариант следует использовать:
tar: Archive is compressed. Use -j option
tar: Error is not recoverable: exiting now
Список файлов tar.bz2
Чтобы просмотреть содержимое файла tar.bz2, используйте параметр --list ( -t ):
tar -tf archive.tar.bz2
Вывод будет выглядеть следующим образом:
file1 file2
Себя добавьте параметр --verbose ( -v ), будет напечатана дополнительная информация, такая как владелец, размер файла, отметка времени и т. д.:
tar -tvf archive.tar.bz2
-rw-r--r-- nome_utente/nome_utente 1239291 2019-08-08 03:04 file1
-rw-r--r-- nome_utente/nome_utente 1239291 2019-08-08 03:04 file2
Вывод
В этом руководстве мы увидели, как извлечь файлы tar.bz2 в Linux.