Команда tar позволяет создавать и распаковывать архивы tar. Она поддерживает широкий спектр программ сжатия, таких как gzip, bzip2, lzip, lzma, lzop, xz и compress.
Xz – это популярный алгоритм сжатия файлов, основанный на алгоритме LZMA. По соглашению, имя архива tar, сжатого с помощью xz, заканчивается либо .tar.xz, либо .txz.
В этой статье объясняется, как использовать команду tar для извлечения (или распаковки) архивов .tar.xz или .txz.
Извлечение файла tar.xz
Утилита tar предварительно устанавливается по умолчанию на всех дистрибутивах Linux и MacOS.
Чтобы извлечь файл tar.xz, вызовите команду tar с параметром –extract( -x) и укажите имя файла архива после параметра -f:
tar -xf archive.tar.xz
tar автоматически определяет тип сжатия и извлекает архив. Эту же команду можно использовать для извлечения архивов tar, сжатых с помощью других алгоритмов, таких как .tar.gz или .tar.bz2.
Если командная строка не ваша вещь, вы можете использовать файловый менеджер GUI. Чтобы извлечь (распаковать) файл tar.xz, просто щелкните правой кнопкой мыши файл, который вы хотите извлечь, и выберите «Extract». Пользователям Windows необходим инструмент с именем 7zip для извлечения файлов tar.xz.
Для более подробного вывода используйте опцию -v. Эта опция указывает tar отображать имена файлов, извлекаемых на терминале.
tar -xvf archive.tar.xz
По умолчанию tar извлекает содержимое архива в текущем рабочем каталоге . Чтобы извлечь архивные файлы в определенную директорию, используйте –directory( -C).
В следующем примере показано, как извлечь содержимое архива в каталог /home/andreyex/files:
tar -xf archive.tar.xz -C /home/andreyex/files
Извлечение определенных файлов из файла tar.xz
Чтобы извлечь конкретные файлы из файла tar.xz, добавьте разделенный пробелами список имен файлов, которые будут извлечены после имени архива:
tar -xf archive.tar.xz file1 file2
При извлечении файлов вы должны указать их точные имена, включая путь, который печатается при tarвызове опции –list( -t).
Извлечение одного или нескольких каталогов из архива аналогично извлечению нескольких файлов:
tar -xf archive.tar.xz dir1 dir2
Если вы попытаетесь извлечь файл, который не существует в архиве, появится сообщение об ошибке, подобное следующему:
tar -xf archive.tar.xz README
tar: README: Not found in archive tar: Exiting with failure status due to previous errors
Опция –wildcards позволяет извлекать файлы из файла tar.xz на основе группового символа шаблона. Шаблон должен быть заключен в кавычки, чтобы оболочка не могла его интерпретировать.
Например, чтобы извлечь только файлы, имена которых оканчиваются на .png, вы должны использовать:
tar -xf archive.tar.xz --wildcards '*.png'
Извлечение файла tar.xz из stdin
При извлечении сжатого файла tar.xz путем чтения архива из стандартного ввода (обычно через конвейерную передачу) необходимо указать параметр распаковки. Опция -J указывает tar, что файл надо сжать с помощью XZ.
В приведенном ниже примере мы загружаем ядро Linux с помощью wgetкоманды и направляем его вывод в tarкоманду:
wget -c https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.3.tar.xz -O - | sudo tar -xj
Если вы не укажете опцию декомпрессии, tar вам покажет, какую опцию вы должны использовать:
tar: Archive is compressed. Use -J option tar: Error is not recoverable: exiting now
Перечисление содержимого файла tar.xz
Чтобы просмотреть содержимое файла tar.xz, используйте параметр –list( -t):
tar -tf archive.tar.xz
Вывод будет выглядеть примерно так:
file1 file2 file3
Если вы добавите параметр –verbose( -v), tar напечатает больше информации, такой как владелец, размер файла, отметка времени .. и т. д.:
tar -tvf archive.tar.xz
-rw-r--r-- andreyex/users 0 2020-02-15 01:19 file1 -rw-r--r-- andreyex/users 0 2020-02-15 01:19 file2 -rw-r--r-- andreyex/users 0 2020-02-15 01:19 file3
Вывод
Файл tar.xz представляет собой архив Tar, сжатый с помощью xz. Чтобы извлечь файл tar.xz, используйте tar команду -xf, а затем имя архива.
Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий ниже.