Как мне распаковать архив, который использует .xz?

Я привык извлекать тарболы с помощью -xfz флаг, который обрабатывает архивы gzip и bzip2.

Недавно я столкнулся с .tar.xz файл, и я хотел бы распаковать его за один шаг, используя tar, как я могу это сделать?

Ubuntu включает GNU tar, который сам распознает формат! Одна команда работает с любым поддерживаемым методом сжатия, за руководство по эксплуатации.

tar xf archive.tar.xztar xf archive.tar.gztar xf archive.tar

и т.д. Если деготь дает Cannot exec ошибка, возможно, вам потребуется sudo apt install xz-utils первый.

Попробуй

tar -xJf file.pkg.tar.xz

То -J это флаг, который конкретно относится к файлам .xz.

Если по какой-то причине tar решения не работают (возможно, потому, что вы используете встроенные модули OS X), попробуйте это:

unxz < file.tar.xz > file.tar

...что эквивалентно:

xz -dc < file.tar.xz > file.tar

Затем используйте tar чтобы удалить файл.

xz - это компрессор данных без потерь. Вам нужно будет извлечь шарик смолы из xz, а затем извлечь смолу:

unxz my_archive.tar.xz      # results in my_archive.tar

Тогда вы знаете, как извлечь смолу

tar -xf my_archive.tar

Источник: Утилиты XZ - Википедия.

У меня была та же проблема, что и у tar xf команда не смогла извлечь его.Чтобы исправить это, вам необходимо установить xz-utils пакет.Решение было таким:

sudo apt-get install xz-utils

затем:

tar xf myfile.tar.xz
tar -xvf package.tar.xz

-x - извлекать файлы

-v - подробный список обработанных файлов

-f - использовать указанный архивный файл

Просто хочу добавить, что если у вас есть старая версия GNU tar до версии 1.22, когда стали доступны опции --xz и -J, вы могли сжимать или распаковывать файлы tar.xz с помощью --use-compress-program xz. Например,

tar --use-compress-program xz -cf example.tar.xz file1 file2 file3

или

tar --use-compress-program xz -xf example.tar.xz

Если tar распознает формат сжатия, вам не нужен флаг:

tar xvf *.tar.xz

Если вам нужно распаковать входные данные вручную, например, потому, что ваш tar слишком стар, чтобы распознать xz, или вам нужен специальный путь:

xz -cd *.tar.xz | tar xvf -

Каналы работают быстрее, чем создание несжатого промежуточного файла, и к тому же занимают меньше места на диске!

Вау, это действительно хорошая идея. Было ли это сделано с помощью 7zip на Mac? Попробуй это:

7z x -so file.tar.xz | tar xf -

Мне нравится dtrx

sudo apt install dtrxdtrx your-file.tar.xz

примечание. возможно, вам придется установить “xz-utils”, если он еще не установлен

tar --help lists tar flags.
-xzf applies to gzip.
-xjf to bz2.
-xJf to xz.

Лучший вопрос, который можно задать, чем как это сделать с помощью tar: используйте unar или 7z и никогда больше не беспокойтесь о выборе правильной программы для вашего типа архива. Это единственное возможное решение, которое с нетерпением ждет появления все новых и новых типов архивов. Если только вас не волнуют технические детали…

вот мой маленький скрипт, который угадывает флаги tar для вас: getting tired of guessing tar flags in 2013? · GitHub