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

0
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 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?

    
por Jürgen Paul 19.07.2013 / 03:35

2 respostas

3

Acho que você precisa da opção tar -J no seu canal. por exemplo. | tar -xJf -

A opção -J informa ao tar para usar a compactação xz .

Acho que o motivo pelo 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.

    
por 19.07.2013 / 03:51
1

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.

    
por 19.07.2013 / 07:57