Я привык извлекать тарболы с -xfz
флагом, который обрабатывает архивы gzip и bzip2.
Недавно я столкнулся с .tar.xz
файлом, и я хотел бы распаковать его за один шаг, используя tar
, как я могу это сделать?
tar
compression
Хорхе Кастро
источник
источник
xz-utils
если еще нетtar --help
спискиtar
флагов.-xzf
относится кgzip
.-xjf
кbz2
.-xJf
кxz
.Ответы:
Ubuntu включает в себя GNU tar, который распознает формат самостоятельно! Одна команда работает с любым поддерживаемым методом сжатия, согласно руководству .
и т.д. Если tar выдает
Cannot exec
ошибку, вам может понадобитьсяsudo apt install xz-utils
сначала.источник
tar: xz: Cannot exec: No such file or directory
, установитеxz-utils
:sudo apt-get install xz-utils
tar
больше не требует определенного флага?Пытаться
tar -xJf file.pkg.tar.xz
Это
-J
флаг, который конкретно работает с файлами .xz.источник
.xz
Если по какой-то причине
tar
решения не работают (возможно, потому что вы используете встроенные модули OS X), попробуйте это:... что эквивалентно:
Затем используйте,
tar
чтобы распаковать файл.источник
unxz < file.tar.xz | tar x
или подобное.tar xf
нет. Ubuntu 12.04unxz
не эквивалентноxz -dc
, ноxz -d
. Таким образом , чтобы извлечьfile.tar.xz
кfile.tar
, вы бы просто написатьunxz file.tar.xz
. Если вам нужен эквивалентxz -dc
, распаковывающий в stdout, используйтеxzcat
. Напримерxzcat file.tar.xz | tar x
.XZ - компрессор данных без потерь. Вам нужно будет извлечь tar-шар из xz, а затем извлечь tar:
Тогда вы знаете, чтобы извлечь смолу
Источник: XZ Utils - Википедия .
источник
xz
не нуждается в перенаправлении stdout. Еще лучше:unxz -k
У меня была такая же проблема,
tar xf
команда не смогла ее извлечь. Чтобы это исправить, вам нужно установитьxz-utils
пакет. Решение было:тогда:
источник
-x
- извлечь файлы-v
- подробный список обработанных файлов-f
- использовать указанный файл архиваисточник
Просто хочу добавить, что если у вас есть старая версия GNU tar до версии 1.22, когда стали доступны опции --xz и -J, вы можете сжимать или распаковывать файлы tar.xz с помощью
--use-compress-program xz
. Например,или же
источник
Если tar распознает формат сжатия, вам не нужен флаг:
tar xvf *.tar.xz
Если вам нужно распаковать ввод вручную, например, потому что ваш tar слишком стар, чтобы распознать xz, или вам нужен специальный путь:
xz -cd *.tar.xz | tar xvf -
Каналы работают быстрее, чем создание несжатого промежуточного файла, и занимают меньше места на диске!
источник
Мне нравится dtrx
источник
Вау, это действительно хорошо. Было ли это сделано с 7zip на Mac? Попробуй это:
источник
tar J
=tar xz
, так что мы могли бы даже написатьtar xzf file.tar.xz
«нормально»tar xvfz file.tar.gz
. Так что в принципе без разницы. Тире не требуется перед использованием переключателя.Ubuntu поставляется с Python (Python 2.7 и Python 3), который содержит необходимые модули для извлечения архивов. Поэтому, если по какой-либо причине
tar
команда отсутствует (скажем, ваш системный администратор удалил ее, и у вас нетsudo
прав для ее установки), можно использовать:Как короткий сценарий, он более читабелен как:
Предположим, я создал
.xz
файл сtar cJf thing.xz /etc/passwd
. Архив будет содержатьetc
каталог сpasswd
файлом внутри. Использование приведенного выше скрипта приведет к созданиюetc
каталога, созданного в вашем текущем рабочем каталоге, и внутри него будетpasswd
файл. Конечно, это всегда можно расширить, указав путь, по которому вы хотите извлечь внутриextractall()
функции.источник
unar
довольно хорошая простая и легко набираемая программа для разархивирования практически любого формата, включая 7z и RARкажется, что он написан на (GNU) Objective-C и поэтому требует установки некоторых
gnustep
(реализация GNU Objective-C) библиотек (gnustep-base-runtime
иlibgnustep-base1.25
)Если вы используете --install-Suggested или настроили
apt
установку предложенных пакетов,unar
предложит и установит множество программ GUI GNUStep, которые вам не подходятон автоматически создаст выходной каталог
linux-source
.источник