Questão tar piped to curl: isso não se parece com um arquivo tar


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

O erro:

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

No entanto, quando eu faço isso, ele pode extrair o arquivo:

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

Por que o cano não funcionou?


0


origem




Respostas:


Eu acho que você precisa tar's -J opção no seu tubo. por exemplo. | tar -xJf -

o -J opção diz tar usar xz compressão.

Eu acho que a razão pela qual tar xf transmission-2.80.tar.xz funciona sem -J é que a opção é inferida por tar com base na extensão do arquivo.


3





O pipe não funcionou porque um fluxo binário não termina com uma extensão de arquivo reconhecida. O fluxo binário nesse caso específico foi compactado com LZMA. Um arquivo tar não é o mesmo que alguns dados compactados LZMA. Isso é exatamente o que o tar te disse.

Se você informar que tipo de compactação (opções J, j, z) um arquivo tar foi criado, ele será descompactado primeiro usando esse algoritmo e reconhecerá o fluxo de dados descompactado como um arquivo tar.


1



Yhank você pela explicação completa senhor. - Jürgen Paul