Как распаковать (разархивировать) файл tar.xz

Команда 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 .

Если командная строка вам не нравится, вы можете использовать файловый менеджер графического интерфейса. Чтобы распаковать (разархивировать) файл tar.xz, просто щелкните правой кнопкой мыши файл, который хотите извлечь, и выберите «Извлечь». Пользователям Windows необходим инструмент под названием 7zip для извлечения файлов tar.xz.

Для более подробного вывода используйте параметр -v . Эта опция указывает tar отображать имена файлов, извлекаемых на терминале.

tar -xvf archive.tar.xz

По умолчанию tar извлекает содержимое архива в текущий рабочий каталог . Чтобы извлечь архивные файлы в определенный каталог, используйте --directory ( -C ).

В следующем примере показано, как извлечь содержимое архива в /home/linuxize/files :

tar -xf archive.tar.xz -C /home/linuxize/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-- linuxize/users       0 2020-02-15 01:19 file1
-rw-r--r-- linuxize/users       0 2020-02-15 01:19 file2
-rw-r--r-- linuxize/users       0 2020-02-15 01:19 file3

Выводы

Файл tar.xz представляет собой архив Tar, сжатый с помощью xz. Чтобы извлечь файл tar.xz, используйте команду tar -xf , за которой следует имя архива.

Если у вас есть вопросы, оставьте комментарий ниже.

Оставьте комментарий