Unerwartetes Dateiende. Gzip komprimierte Datei

16

Ich werde mit einer gzip Akte verrückt.

Ich kann die Datei unter Windows mit WinRAR dekomprimieren, aber unter einem UNIX-Betriebssystem ist dies nicht möglich.

Die Datei scheint in Ordnung zu sein. Wenn ich mache

file the_name_of_the_file.gz

Ich bekomme:

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

Aber wenn ich es mache

gunzip -f the_name_of_the_file.gz

Ich bekomme immer:

gzip: the_name_of_the_file.gz: unexpected end of file

Das gleiche Problem tritt auf, wenn ich versuche, die Datei mit dem GUI-Tool in Ubuntu oder MacOSX zu extrahieren.

Irgendwelche Ideen?

cues7a
quelle
Handelt es sich um dieselbe exakte Datei (dh Sie haben sie auf einem Flash-Laufwerk und haben sie unter den beiden Betriebssystemen geöffnet) oder laden Sie sie einzeln herunter? Wenn dies der Fall ist, können Sie möglicherweise einen unvollständigen Download durchführen, der nicht alle Daten enthält (auch bekannt als beschädigt).
Freesnöw
1
Der fileBefehl überprüft nicht die gesamte Datei. Es werden nur ein paar Bytes im Header betrachtet, um herauszufinden, dass es sich um eine gzverschlüsselte Datei handelt.
Es ist nicht beschädigt, weil ich es zuerst unter Unix und später unter Windows versucht habe.
Cues7a
Hast du die gzip-Datei gemacht? Wenn ja, mit welchem ​​Betriebssystem und welcher Anwendung haben Sie die gzip-Datei erstellt?
So

Antworten:

5

Eine Problemumgehung zum Dekomprimieren einer Datei, wenn ein gzipFehler mit "Unerwartetes Ende der Datei" auftritt, ist zu verwenden zcat(wird normalerweise auch vom gzip-Paket Ihrer Distribution bereitgestellt).

$ zcat file.raw.gz > file.raw

Gangelop
quelle
2

Haben Sie die Datei zufällig im ASCII-Modus per FTP von Win * nach Unix übertragen? Das könnte es erklären. Ist die Datei unter Win * und Unix gleich groß?

Heiko Rupp
quelle
Ich habe versucht, die Datei zuerst unter Windows und später unter Unix zu dekomprimieren.
cues7a
1

Ich vermute, Sie beschädigen die Datei, wenn Sie sie auf den * nix-Rechner kopieren.

FTP es im Binärmodus.

Brian Roach
quelle
Ich denke, die Datei ist nicht beschädigt, weil ich versucht habe, sie unter Unix und später unter Windows zu komprimieren.
cues7a
1
Was Sie sagen, ergibt keinen Sinn. Wenn Sie keine Kopie der Datei erstellen mussten, sagen Sie dies. In diesem Fall war der Kopiervorgang (FTP?) Möglicherweise nicht korrekt.
Robin Green
Ich habe die Datei per USB-Stick übertragen. Ich habe es zuerst unter UNIX versucht und es hat nicht funktioniert. Dann habe ich es unter Windows versucht und es hat funktioniert.
cues7a
1

Ich habe das Problem mit dem Dienstprogramm P7zip gelöst , einem Port von 7za.exe für POSIX-Systeme.

cues7a
quelle
Sie sagen also, dass für die archivierte Datei eine Komprimierungsmethode verwendet wurde, die von älteren Unix-Tools nicht erkannt wird?
So
0

Aufgrund einiger Erfahrungen mit WinRar gehe ich zunächst davon aus, dass unvollständige oder beschädigte Dateien extrahiert werden, ohne dass ein Fehler angezeigt wird , während gzip (korrekt) einen Fehler ausgibt .

Was macht 7zip aus Ihrer Datei?

Welche Version gzip -Vkündigt das an?

Was gzip -t the_name_of_the_file.gzsagt dir das? (wahrscheinlich das gleiche unerwartete EOF, aber einen Versuch wert)

Jason Sherman
quelle
gzip -V: gzip 1.3.12 ,, gzip -t der_Name_der_Datei -> Unerwarteter EOF
Cues7a
0

Ich hatte das gleiche Problem und in meinem Fall lag es an der Tatsache, dass die Datei eine leere (0 Byte) gzDatei war, die mit dem folgenden touchBefehl erstellt wurde:

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

gzip konnte es nicht dekomprimieren, wenn es mit dem folgenden Befehl aufgerufen wurde:

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

Die richtige Art, eine leere txtDatei darzustellen, bestand darin, zuerst die txtDatei zu generieren , sie dann zu komprimieren und schließlich zu dekomprimieren:

$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

Ich weiß nicht, ob dieses Szenario Ihren Fall repräsentiert, aber es kann Ihnen Hinweise geben oder jemand anderem helfen.

Alfredo Capobianchi
quelle