A extração de um arquivo tar.gz retorna: "Isso não se parece com um arquivo tar."

29

Eu tenho um arquivo tar.gz e quero extraí-lo usando o terminal. Eu usei os seguintes comandos: tar tvzf ldtp_3.5.0.orig.tar.gze tar -xvzf ldtp_3.5.0.orig.tar.gz. No entanto, obtenho o mesmo resultado para os dois arquivos:

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

A saída do comando file mostra que é um arquivo gzip:

$ file ldtp_3.5.0.orig.tar.gz 
ldtp_3.5.0.orig.tar.gz: gzip compressed data, from Unix

Posso extrair usando o botão direito do mouse -> Extrair, mas quero fazer isso usando o terminal. Alguém pode me dizer como fazer isso?

TheRookierLearner
fonte

Respostas:

37

Observando o erro que você está vendo, juntamente com o fato de que você pode realmente descompactar, ele diz que o arquivo é um arquivo TAR / Gzip genuíno, mas talvez não seja criado um TAR imediato após o Gzip.

Ou seja, se você baixou isso de um servidor Web, às vezes a compactação Gzip é aplicada ao conteúdo da Web no nível do servidor para acelerar o download do conteúdo. Mas, se não estiver definido corretamente no servidor para ignorar o conteúdo já compactado como esse, ele poderá inadvertidamente duplicar os arquivos Gzip.

Com isso em mente, eu veria se simplesmente descompacte o Gzip na linha de comando para ver o que acontece. Use um comando como este:

gzip -d ldtp_3.5.0.orig.tar.gz

E veja qual é o arquivo resultante. Tenho uma sensação engraçada depois de executar esse comando, você não verá um ldtp_3.5.0.orig.tarno diretório, mas um arquivo nomeado como a fonte ldtp_3.5.0.orig.tar.gz- - mas talvez com a modificação alterada? Se for esse o caso, é realmente duplo Gzipped. Portanto, neste ponto - após o descompactador inicial - você pode executar o tarcomando que possui assim:

tar -xvzf ldtp_3.5.0.orig.tar.gz

E agora deve descomprimir adequadamente o arquivo TAR completo.

Outra maneira de fazer algo semelhante ao processo de duas etapas é canalizar a saída gzippara tar:

gzip -dc ldtp_3.5.0.orig.tar.gz | tar -xvzf -

O cno gzipe o -no final do comando é a chave:

  • A copção for gzipdirá gzippara descompactar no fluxo de saída padrão.
  • A -no final dos tarmeios de comando “usar a entrada padrão.” Então, juntamente com o do -cem gzip, o tubo, então, tomar a saída padrão córrego canalizado para ele a partir gzipe se conectar que a entrada padrão no tar.
JakeGould
fonte
1
Eu tentei o primeiro comando gzip -d ldtp_3.5.0.orig.tar.gze (estranhamente) consegui um .tararquivo. No entanto, quando eu tentei tar -xvf ldtp_3.5.0.orig.tarEu tenho um erro dizendo: tar: v: Cannot open: No such file or directory tar: Error is not recoverable: exiting now
TheRookierLearner
@TheRookierLearner Então o que acontece se você fosse fazer gzip -d ldtp_3.5.0.orig.tarno ldtp_3.5.0.orig.tar?
JakeGould
Eu tentei gzip -d ldtp_3.5.0.orig.tar.gze recebi a mensagem gzip: ldtp_3.5.0.orig.tar: unknown suffix -- ignored gzip: on.gz: No such file or directory gzip: the.gz: No such file or directory gzip: ldtp_3.5.0.orig.tar: unknown suffix -- ignored . Depois disso eu tentei tar -xvzf ldtp_3.5.0.orig.tare funcionou! Muito obrigado!
TheRookierLearner