Em que circunstâncias o gunzip & tar xf funciona, mas o tar xzf falha?

9

Para ilustrar o ponto: baixei a biblioteca LEDA do site da empresa . Usando o tar -xzf, ele falha:

$ tar -xzf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz 
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, gunzip seguido por tar -xf funciona bem:

$ gunzip LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz
$ tar -xf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar
# no error

Alguém pode me dizer por que isso poderia ser? - Eu quero que o comando padrão tar funcione o tempo todo.

    
por Michael Schubert 15.04.2013 / 20:53

1 resposta

12

O que parece ter acontecido é que eles duplicaram o arquivo.

Se você executar file em seu arquivo gunzip'd, verá que ainda é um arquivo gzip. E se você renomeá-lo para ter .gz novamente, você pode gunzip novamente.

Parece que recentemente o gnu tar adicionará automaticamente a opção -z , desde que a entrada seja um arquivo. Então, é por isso que funciona sem a opção -z depois que você já executou gunzip uma vez, o tar automaticamente a adicionou.

Esse comportamento está documentado na página de informações:

"Reading compressed archive is even simpler: you don't need to specify any additional options as GNU 'tar' recognizes its format automatically. [...] The format recognition algorithm is based on "signatures", a special byte sequences in the beginning of file, that are specific for certain compression formats."

Isso é de §8.1.1 "Criando e lendo arquivos compactados".

    
por 15.04.2013 / 21:36

Tags