Fine inaspettata del file. File compresso gzip


16

Sto impazzendo con un file gzip.

Posso decomprimere il file in Windows usando WinRAR ma è impossibile su qualsiasi sistema operativo UNIX.

il file sembra essere ok. Se lo faccio

file the_name_of_the_file.gz

Ottengo:

the_name_of_the_file.gz: gzip compressed data, from Unix, last modified: Sun Jan 30 14:10:21 2011

Ma se lo faccio

gunzip -f the_name_of_the_file.gz

Ricevo sempre:

gzip: the_name_of_the_file.gz: unexpected end of file

Lo stesso problema si verifica quando provo ad estrarre il file utilizzando lo strumento GUI in Ubuntu o MacOSX,

Qualche idea?


È lo stesso file esatto (ovvero lo hai su un'unità flash e l'hai aperto dai due sistemi operativi) o lo stai scaricando singolarmente? Se in seguito, potresti avere un download incompleto che non ha tutti i dati (aka, corrotto).
Freesnöw,

1
Il filecomando non controlla tutto il file. Guarderà solo pochi byte nell'intestazione per capire che si tratta di un gzfile codificato.

Non è danneggiato perché ho provato prima in Unix e successivamente in Windows.
cues7a

Hai creato il file gzip? In tal caso, quale sistema operativo e applicazione hai utilizzato per creare il file gzip?
Sun

Risposte:


5

È necessario utilizzare una soluzione alternativa per decomprimere un file in caso di gziperrore con "fine del file imprevista" zcat(di solito fornita anche dal pacchetto gzip della distribuzione).

$ zcat file.raw.gz > file.raw


2

Per caso hai trasferito il file da Win * a Unix tramite ftp in modalità ASCII? Questo potrebbe spiegarlo. Il file ha le stesse dimensioni su Win * e Unix?


Ho provato a decomprimere il file prima in Windows e successivamente in Unix.
cues7a,

1

Ho il sospetto che stai corrompendo il file quando lo copi sulla macchina * nix.

FTP in modalità binaria.


Penso che il file non sia danneggiato perché ho provato a comprimerlo con un pugno in Unix e successivamente in Windows.
cues7a

1
Quello che stai dicendo non ha senso. Se non hai bisogno di creare una copia del file, allora dillo. In caso contrario, forse il processo di copia (FTP?) Non è corretto.
Robin Green,

Ho trasferito il file tramite USB pendrive. Ho provato prima in UNIX e non ha funzionato e poi ho provato in Windows e ha funzionato.
cues7a

1

Ho risolto il problema utilizzando l'utilità P7zip , una porta di 7za.exe per i sistemi POSIX.


Quindi, stai dicendo che il file archiviato ha usato un metodo di compressione che non è riconosciuto dagli strumenti Unix legacy?
Sun

0

Sulla base di alcune esperienze con WinRar, la mia prima ipotesi è che sta estraendo file incompleti o corrotti senza dare un errore, mentre gzip sta (correttamente) dando un errore.

Cosa fa 7zip del tuo file?

Quale versione fa gzip -V annuncia?

Che cosa gzip -t the_name_of_the_file.gzti dice? (probabilmente lo stesso inaspettato EOF, ma vale la pena provare)


gzip -V: gzip 1.3.12 ,, gzip -t the_name_of_the_file -> EOF imprevisto
cues7a

0

Ho avuto lo stesso problema e, nel mio caso, era dovuto al fatto che il file era un file vuoto (0 byte) gz, creato con il touchcomando:

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

gzip non è riuscito a decomprimerlo, quando chiamato con il comando:

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

Il modo corretto di rappresentare un txtfile vuoto sarebbe stato quello di generare prima il txtfile, quindi comprimerlo e, infine, decomprimerlo:

$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

Non so se questo scenario rappresenti il ​​tuo caso, ma potrebbe darti qualche indizio o aiutare qualcun altro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.