Estou ficando louco com um arquivo gzip.
Posso descompactar o arquivo no Windows usando o WinRAR, mas é impossível em qualquer sistema operacional UNIX.
o arquivo parece estar ok. Se eu fizer
file the_name_of_the_file.gz
Eu recebo:
the_name_of_the_file.gz: gzip compressed data, from Unix, last modified: Sun Jan 30 14:10:21 2011
Mas se eu fizer
gunzip -f the_name_of_the_file.gz
Eu sempre recebo:
gzip: the_name_of_the_file.gz: unexpected end of file
O mesmo problema ocorre quando tento extrair o arquivo usando a ferramenta GUI no Ubuntu ou MacOSX,
Alguma ideia?
file
comando não verificará todo o arquivo. Ele analisará apenas alguns bytes no cabeçalho para descobrir que é umgz
arquivo codificado.Respostas:
Uma solução alternativa para descompactar um arquivo quando
gzip
falhar com "final inesperado de arquivo" deve ser usadazcat
(geralmente também fornecida pelo pacote gzip da sua distribuição).$ zcat file.raw.gz > file.raw
fonte
Você por acaso transferiu o arquivo do Win * para o Unix via ftp no modo ascii? Isso pode explicar isso. O arquivo tem o mesmo tamanho no Win * e no Unix?
fonte
Eu suspeito que você esteja corrompendo o arquivo ao copiá-lo para a máquina * nix.
FTP-lo no modo binário.
fonte
Resolvi o problema usando o utilitário P7zip , uma porta do 7za.exe para sistemas POSIX.
fonte
Com base em algumas experiências com o WinRar, meu primeiro palpite é que ele está extraindo arquivos incompletos ou corrompidos sem dar erro, enquanto o gzip está (corretamente) dando um erro.
O que o 7zip faz do seu arquivo?
Que versão
gzip -V
anuncia?O que
gzip -t the_name_of_the_file.gz
te diz? (provavelmente o mesmo EOF inesperado, mas vale a pena tentar)fonte
Eu tive o mesmo problema e, no meu caso, foi devido ao fato de o arquivo ser um arquivo vazio (0 bytes)
gz
, criado com otouch
comando:O gzip não pôde descompactá-lo, quando chamado com o comando:
A maneira correta de representar um
txt
arquivo vazio teria sido gerar primeiro otxt
arquivo, depois compactá-lo e, finalmente, descompactá-lo:Não sei se esse cenário representa o seu caso, mas pode lhe dar alguma pista ou ajudar outra pessoa.
fonte