curl -L http://download.transmissionbt.com/files/transmission-2.80.tar.xz -s -o - | tar -xf -

Ошибка:

tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

Однако, когда я делаю это, он может извлечь архив:

curl -LO http://download.transmissionbt.com/files/transmission-2.80.tar.xz
tar xf transmission-2.80.tar.xz

Почему труба не работает?

2 ответа2

3

Я думаю, вам нужен параметр tar ' -J в вашей трубе. например, | tar -xJf -

Опция -J указывает tar использовать сжатие xz .

Я думаю, что причина, по которой tar xf transmission-2.80.tar.xz работает без -J заключается в том, что опция выводится tar на основе расширения файла.

1

Канал не работал, потому что двоичный поток не заканчивается с распознанным расширением файла. Двоичный поток в данном конкретном случае был сжат с помощью LZMA. Архив tar отличается от некоторых сжатых данных LZMA. Это именно то, что сказал вам tar.

Если вы дадите ему знать, с каким типом сжатия (параметры J, j, z) был создан архив tar, он сначала распакует его с использованием этого алгоритма и распознает распакованный поток данных как архив tar.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .