Я привык извлекать тарболы с помощью -xfz
флаг, который обрабатывает архивы gzip и bzip2.
Недавно я столкнулся с .tar.xz
файл, и я хотел бы распаковать его за один шаг, используя tar
, как я могу это сделать?
Я привык извлекать тарболы с помощью -xfz
флаг, который обрабатывает архивы gzip и bzip2.
Недавно я столкнулся с .tar.xz
файл, и я хотел бы распаковать его за один шаг, используя tar
, как я могу это сделать?
Ubuntu включает GNU tar, который сам распознает формат! Одна команда работает с любым поддерживаемым методом сжатия, за руководство по эксплуатации.
tar xf archive.tar.xztar xf archive.tar.gztar xf archive.tar
и т.д. Если 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 Utils - Википедия.
У меня была та же проблема, что и у 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