tar: EOF inesperado no arquivo morto

5

Eu estava tentando descompactar um arquivo .tar.gz , mas deparei com esse erro:

gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

O arquivo tar.gz inclui um arquivo .tar , que quando resulta descompactado:

tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

Eu tentei os dois –ignore-zeros e –ignore-failed-read , embora ambos não funcionassem.

Existe alguma maneira de extrair esse arquivo mesmo se ele estiver corrompido?

O tipo de arquivo em questão: .tar.gz : Gzip Compressed Data, de um sistema UNIX.

    
por iLinux85 05.11.2012 / 12:54

4 respostas

7

Verifique dois itens:

(1) O FILE INCOMPLETE é devido a um download incorreto? Faça novamente o download e use a opção -c se você estiver usando o wget. (acontece o tempo todo).

(2) O nome do arquivo .tar ou .tar.gz tem CARACTERES ILEGAIS . É melhor manter nomes de arquivos simples, curtos, compostos de letras e números. (acontece o tempo todo). Então apenas renomeie o arquivo. Este me acertou recentemente, pois achei que seria conveniente incluir um carimbo de data / hora como parte do nome do arquivo. MÁ IDÉIA!

    
por 09.08.2015 / 06:20
2

Você não faz. Parece que o arquivo foi truncado. Quanto tempo é isso? Se você tiver apenas os primeiros bytes, então está pronto.

    
por 05.11.2012 / 14:55
0

você está descompactando o arquivo .tar.gz na mesma plataforma em que foi feito? Existem algumas diferenças entre as antigas versões Unix do tar, como as versões não-GNU do tar que vêm com o Solaris, e o GNU tar que vem com o Linux, etc. Se você vai descompactar um arquivo com o GNU tar, é melhor criá-lo com o tar GNU.

como o seu sistema procura espaço em disco? O disco estava cheio quando você fez o arquivo, ou está cheio quando você tenta descompactá-lo?

você criou o arquivo com um cron job? sem redirecionamento de saída, o cron pode fazer coisas funky em arquivos devido a limitações no tamanho da saída que permitirá ao STDOUT. Se você estiver fazendo um arquivamento no cron e estiver usando -v com tar , tente redirecionar STDOUT para um arquivo e STDERR também. Veja se isso ajuda. tar -cvf archive.tar.gz /path/ 1>archive.stdout.log 2>archive.stderr.log ou algo assim.

    
por 05.11.2012 / 15:24
0

apenas enfrentamos isso recentemente, a solução era renomear o arquivo (remover o _ ). Por exemplo, o nome do arquivo incorreto que estava causando o problema MAA07-0100-0100-01AAA_show_tech_output.tgz , renomear isso para MAA07-0100-0100-01AAA.tgz ajudou a resolver o problema.

    
por 23.11.2018 / 10:48