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

586

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

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

    
задан Jorge Castro 03.01.2012 в 00:41
источник

9 ответов

765

Современный tar распознает формат сам по себе! Одна команда работает с любым поддерживаемым методом сжатия.

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

и др.     

ответ дан ramslök 26.02.2012 в 18:41
источник
263

Попробуйте

tar -xJf file.pkg.tar.xz

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

    
ответ дан jrg 03.01.2012 в 00:42
63

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

unxz < file.tar.xz > file.tar

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

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

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

    
ответ дан Mathias Bynens 19.01.2014 в 21:05
20

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

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

Затем вы знаете, чтобы извлечь tar

tar -xf my_archive.tar

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

ответ дан Foxx 23.05.2014 в 20:44
10

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

sudo apt-get install xz-utils

, то

tar xf myfile.tar.xz
    
ответ дан Zsolt Sky 14.02.2015 в 19:44
5

Что насчет

tar -xvf package.tar.xz
    
ответ дан nsane 05.03.2014 в 18:16
3

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

tar xvf *.tar.xz

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

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

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

    
ответ дан Orion Lawlor 04.02.2015 в 07:13
3

Просто хочу добавить, что если у вас есть старая версия 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
    
ответ дан ScottH 04.09.2015 в 03:21
2

Ничего себе, это действительно хорошо. Это было сделано с 7zip на Mac? Попробуйте следующее:

7z x -so file.tar.xz | tar xf -
    
ответ дан user8290 03.01.2012 в 01:06