Fim de arquivo inesperado. Arquivo compactado gzip

16

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?

cues7a
fonte
É o mesmo arquivo exato (ou seja, você o possui em uma unidade flash e o abriu nos dois sistemas operacionais) ou está fazendo o download individualmente? Se, posteriormente, você poderá ter um download incompleto que não possui todos os dados (também conhecido como corrompido).
Freesnöw 04/04
1
O filecomando não verificará todo o arquivo. Ele analisará apenas alguns bytes no cabeçalho para descobrir que é um gzarquivo codificado.
Não está corrompido porque tentei primeiro no Unix e depois no Windows.
Cues7a
Você criou o arquivo gzip? Em caso afirmativo, qual sistema operacional e aplicativo você usou para criar o arquivo gzip?
Sun

Respostas:

5

Uma solução alternativa para descompactar um arquivo quando gzipfalhar com "final inesperado de arquivo" deve ser usada zcat(geralmente também fornecida pelo pacote gzip da sua distribuição).

$ zcat file.raw.gz > file.raw

gangelop
fonte
2

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?

Heiko Rupp
fonte
Eu tentei descomprimir o arquivo primeiro no Windows e depois no Unix.
Cue7a
1

Eu suspeito que você esteja corrompendo o arquivo ao copiá-lo para a máquina * nix.

FTP-lo no modo binário.

Brian Roach
fonte
Eu acho que o arquivo não está corrompido porque tentei fechar o punho em unix e posteriormente no Windows.
Cue7a
1
O que você está dizendo não faz sentido. Se você não precisou criar uma cópia do arquivo, diga-o. Se você fez, talvez o seu processo de cópia (FTP?) Esteja incorreto.
Robin Green
Transferi o arquivo via pendrive USB. Tentei primeiro no UNIX e não funcionou, depois tentei no Windows e funcionou.
Cue7a
1

Resolvi o problema usando o utilitário P7zip , uma porta do 7za.exe para sistemas POSIX.

cues7a
fonte
Então, você está dizendo que o arquivo arquivado usou um método de compactação que não é reconhecido pelas ferramentas Unix herdadas?
Sun
0

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

O que gzip -t the_name_of_the_file.gzte diz? (provavelmente o mesmo EOF inesperado, mas vale a pena tentar)

Jason Sherman
fonte
gzip -V: gzip 1.3.12 ,, gzip -t the_name_of_the_file -> EOF inesperado
cues7a
0

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 o touchcomando:

$touch file.txt.gz
-rw-r--r-- 1 user user    0 2016-05-24 11:48 file.txt

O gzip não pôde descompactá-lo, quando chamado com o comando:

$gzip -dv file.txt.gz
gzip: file.txt.gz: unexpected end of file

A maneira correta de representar um txtarquivo vazio teria sido gerar primeiro o txtarquivo, depois compactá-lo e, finalmente, descompactá-lo:

$touch file.txt

$gzip -v file.txt
file.txt:         0.0% -- replaced with file.txt.gz

$gzip -dv file.txt.gz
file.txt.gz:      0.0% -- replaced with file.txt

Não sei se esse cenário representa o seu caso, mas pode lhe dar alguma pista ou ajudar outra pessoa.

Alfredo Capobianchi
fonte