Вопрос: Как распаковать tarball, который использует .xz?


Я использую для извлечения tarballs с -xfz флаг, который обрабатывает архивы gzip и bzip2.

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


645
2018-01-02 23:41


Источник


обратите внимание, что вам, возможно, придется установить xz-utils если еще не присутствует - Tobias Kienzler
вот мой маленький скрипт, который догадывается вам о флажках tar: gist.github.com/shime/5908634 - shime
tar --help списки tar флаги. -xzf относится к gzip, -xjf в bz2, -xJf в xz, - noobninja


Ответы:


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

tar xf archive.tar.xz
tar xf archive.tar.gz
tar xf archive.tar

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


841
2018-02-26 17:41



Это особенность GNU tar. Я не знаю о конкурирующих реализациях, но GNU tar должен быть наиболее релевантным для ubuntu. gnu.org/software/tar/manual/tar.html#SEC131 - ramslök
если вы столкнетесь tar: xz: Cannot exec: No such file or directory, установите xz-utils: sudo apt-get install xz-utils - Collin Anderson
Это не ответ, это «вы не заботитесь о ответе, даже если вы ответили« ответ ». Запомните мысль для людей, которые не на «последних» - Sean Houlihane
Какая версия tar больше не требуется определенный флаг? - Mark Tomlin
@SeanHoulihane, это не ответ, потому что ОП попросил несовершеннолетнего Проблема XY, ramslök дал OP лучше, чем было предложено, и это включало эффективный «Вы не заботитесь о ответе, даже если вы спросили», что было уместно, потому что это было правдой. - JonathanHayward


Пытаться

tar -xJf file.pkg.tar.xz

-J это флаг, который специально обрабатывает файлы .xz.


282
2018-01-02 23:42



Интересно, сколько флагов у нас будет в 2020 году. Как ... 45 различных компрессий? Знание tar-переключателей уже является черным ремнем в Linux-fu. : / - Shiki
@Shiki: Вероятно, это не значит, что вы больше не указываете флаг формата сжатия. (См. Ответ ramslök.) - Nate C-K
xkcd.com/1168 - Wordzilla
Это должно быть полностью принятым ответом, поскольку он отвечает на вопрос о любой версии поддержки tar .xz - pospi
В 2030 году флаги превратятся в Тьюринга ... 2040 они становятся разумными - user1359


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

unxz < file.tar.xz > file.tar

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

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

Затем используйте tar для распаковки файла.


67
2018-01-19 20:05



Это должно быть конструктивно с трубой. - gerrit
Я чувствую, что ты можешь просто сделать unxz < file.tar.xz | tar x или похожие. - thirtythreeforty
это сработало для меня, где tar xf не. ubuntu 12.04 - philshem
По крайней мере, на моей машине Ubuntu, unxz не эквивалентно xz -dc, но xz -d, Итак, чтобы извлечь file.tar.xz в file.tar, вы просто напишете unxz file.tar.xz, Если вы хотите получить эквивалент xz -dc, распаковка на стандартный вывод, использование xzcat, Например xzcat file.tar.xz | tar x, - nwellnhof


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

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

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

tar -xf my_archive.tar

Источник: XZ Utils - Википедия,


22
2018-05-23 18:44



Лучший ответ. xz не требуется перенаправление stdout. Даже лучше: unxz -k - Mark Jeronimus


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

sudo apt-get install xz-utils

тогда:

tar xf myfile.tar.xz

11
2018-02-14 18:44





Как насчет

tar -xvf package.tar.xz

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

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

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


7
2018-03-05 17:16





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

tar xvf *.tar.xz

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

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

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


3
2018-02-04 06:13