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

Очень приятно. Однако, следуя приведенным выше советам, ошибка возникает для меня: «ПРЕДУПРЕЖДЕНИЕ: невозможно определить IP-адрес». Чтобы устранить эту ошибку, нужно было только удалить пробелы в опциях файла.

И для лучшего IP-адреса сайта: myip.dnsomatic.com

«ПРЕДУПРЕЖДЕНИЕ: невозможно определить IP-адрес».

sudo nano /etc/ddclient.conf
# #
# # OpenDNS.com account-configuration
# #

ssl=yes
use=web, web=myip.dnsomatic.com

server=updates.opendns.com
protocol=dyndns2
login=username in OpenDNS                   <-----
password='key OpenDNS'                      <----- CHANGE THIS
(Name of the network you set up in OpenDNS)   <-----

Проверить, все ли в порядке с командой:

sudo nano /etc/ddclient.conf

1
задан 20 January 2014 в 02:29

11 ответов

Попробуйте

tar -xJf file.pkg.tar.xz

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

274
ответ дан 25 May 2018 в 15:29
  • 1
    Интересно, сколько флагов у нас будет в 2020 году. Как ... 45 различных компрессий? Знание tar-переключателей уже является черным ремнем в Linux-fu. : / – Shiki 7 June 2013 в 20:13
  • 2
    @Shiki: Вероятно, это не значит, что вы больше не указываете флаг формата сжатия. (См. Ответ ramslök.) – Nate C-K 23 October 2013 в 08:37
  • 3
    xkcd.com/1168 – Wordzilla 25 March 2015 в 17:21
  • 4
    Это должно быть полностью принятым ответом, поскольку он отвечает на вопрос о любой версии tar, поддерживающей .xz – pospi 8 July 2015 в 15:21
  • 5
    В 2030 году флаги превратятся в Тьюринга ... 2040 они становятся разумными – user1359 14 February 2017 в 23:46

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

unxz < file.tar.xz > file.tar

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

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

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

66
ответ дан 25 May 2018 в 15:29
  • 1
    Это должно быть конструктивно с трубой. – gerrit 21 March 2014 в 00:43
  • 2
    Я чувствую, что вы можете просто сделать unxz < file.tar.xz | tar x или подобное. – thirtythreeforty 16 May 2014 в 19:39
  • 3
    это сработало для меня, где tar xf этого не делал. ubuntu 12.04 – philshem 15 August 2014 в 01:57
  • 4
    По крайней мере, на моей машине 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 25 May 2017 в 19:50

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

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

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

tar -xf my_archive.tar

Источник: XZ Utils - Wikipedia.

22
ответ дан 25 May 2018 в 15:29
  • 1
    Лучший ответ. xz не требуется перенаправление stdout. Еще лучше: unxz -k – Mark Jeronimus 27 February 2017 в 13:29

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

sudo apt-get install xz-utils

, затем:

tar xf myfile.tar.xz
11
ответ дан 25 May 2018 в 15:29

Как насчет

tar -xvf package.tar.xz

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

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

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

7
ответ дан 25 May 2018 в 15:29

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

tar xvf *.tar.xz

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

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

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

3
ответ дан 25 May 2018 в 15:29

Просто хочу добавить, что если у вас есть старая версия 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
3
ответ дан 25 May 2018 в 15:29

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

7z x -so file.tar.xz | tar xf -
2
ответ дан 25 May 2018 в 15:29
  • 1
    Требуется 7z, что не то, что он хочет - он хочет сделать это целиком в tar. – jrg♦ 3 January 2012 в 06:08
  • 2
    Да, спасибо - " xz " подловил! Ну, это один шаг в любом случае :) И tar J = tar xz, поэтому мы могли бы даже написать tar xzf file.tar.xz, как «обычный». [F4]. Так что в принципе никакой разницы. Перед использованием коммутатора не требуется никаких тире. – user 3 January 2012 в 06:19
  • 3
    Это почти так, как ответ был дан в вопросе. :) – user 3 January 2012 в 06:26
  • 4
    Я тоже был сброшен из-за того, что tar zxf был вычеркнут из файла .xz, я полагаю, что просто использовать J все время было бы правильным путем. – Jorge Castro 3 January 2012 в 06:28
  • 5
    Ага! Страница руководства не синхронизируется с источником: buffer.c использует -J для lzma. – user 3 January 2012 в 06:45

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

7z x -so file.tar.xz | tar xf -
2
ответ дан 25 May 2018 в 15:29
  • 1
    Да, спасибо - " xz " подловил! Ну, это один шаг в любом случае :) И tar J = tar xz, поэтому мы могли бы даже написать tar xzf file.tar.xz, как «обычный». [F4]. Так что в принципе никакой разницы. Перед использованием коммутатора не требуется никаких тире. – user 3 January 2012 в 06:19
  • 2
    Это почти так, как ответ был дан в вопросе. :) – user 3 January 2012 в 06:26
  • 3
    Ага! Страница руководства не синхронизируется с источником: buffer.c использует -J для lzma. – user 3 January 2012 в 06:45

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

7z x -so file.tar.xz | tar xf -
2
ответ дан 25 May 2018 в 15:29
  • 1
    Да, спасибо - " xz " подловил! Ну, это один шаг в любом случае :) И tar J = tar xz, поэтому мы могли бы даже написать tar xzf file.tar.xz, как «обычный». [F4]. Так что в принципе никакой разницы. Перед использованием коммутатора не требуется никаких тире. – user 3 January 2012 в 06:19
  • 2
    Это почти так, как ответ был дан в вопросе. :) – user 3 January 2012 в 06:26
  • 3
    Ага! Страница руководства не синхронизируется с источником: buffer.c использует -J для lzma. – user 3 January 2012 в 06:45

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

7z x -so file.tar.xz | tar xf -
2
ответ дан 25 May 2018 в 15:29
  • 1
    Да, спасибо - " xz " подловил! Ну, это один шаг в любом случае :) И tar J = tar xz, поэтому мы могли бы даже написать tar xzf file.tar.xz, как «обычный». [F4]. Так что в принципе никакой разницы. Перед использованием коммутатора не требуется никаких тире. – user 3 January 2012 в 06:19
  • 2
    Это почти так, как ответ был дан в вопросе. :) – user 3 January 2012 в 06:26
  • 3
    Ага! Страница руководства не синхронизируется с источником: buffer.c использует -J для lzma. – user 3 January 2012 в 06:45

Другие вопросы по тегам:

Похожие вопросы: