Frage

Ich habe eine große Anzahl von Dateien in einem tar.gz-Archiv. Überprüfen Sie den Dateityp mit dem Befehl

file SMS.tar.gz

gibt die Antwort

gzip compressed data - deflate method , max compression

Wenn ich versuche, das Archiv mit gunzip zu extrahieren, nach einer Verzögerung erhalte ich die Meldung

gunzip: SMS.tar.gz: unexpected end of file

Gibt es eine Möglichkeit, selbst Teil des Archivs zu erholen?

War es hilfreich?

Lösung

Sind Sie sicher, dass es eine gzip-Datei ist? Ich würde zunächst ‚Datei SMS.tar.gz‘ führen, dass zu validieren.

Dann würde ich die gzip Recovery-Toolkit Seite lesen.

Andere Tipps

Recovery ist möglich, aber es hängt davon ab, was die Korruption verursacht wird.

Wenn die Datei gerade abgeschnitten wird, ist eine Teilergebnis aus nicht immer zu hart; nur laufen

gunzip < SMS.tar.gz > SMS.tar.partial

, die am Ende eine Ausgabe trotz des Fehlers geben.

Wenn die komprimierte Datei große fehlende Blöcke hat, es ist im Grunde hoffnungslos nach dem schlechten Block.

Wenn die komprimierte Datei systematisch in kleinen Dingen beschädigt ist (zB die Binärdatei im ASCII-Modus übertragen, die Wagenrücklauf und Zeilenumbrüche in der gesamten Datei zerschlägt) ist es möglich, sich zu erholen, aber erfordert einiges an kundenspezifische Programmierung, es ist wirklich nur lohnt sich, wenn Sie haben absolut keine andere Möglichkeit (keine Sicherungen) und die Daten viel Mühe wert. (Ich habe es erfolgreich getan.) Ich erwähnte dieses Szenario in einer vorherige Frage .

Die Antworten für ZIP-Dateien unterscheiden sich etwas, da Zip-Archive mehrere separat komprimiert Mitgliedern, so gibt es mehr Hoffnung (obwohl die meisten kommerziellen Werkzeuge eher Schein sind, sie zu beseitigen Warnungen durch das Patchen CRCs, nicht durch eine gute Wiederherstellung von Daten). Aber Ihre Frage war, um eine tar.gz-Datei, die ein Archiv mit einem großen Mitglied.

Hier ist ein mögliches Szenario, das wir erlebt haben. Wir hatten eine tar.gz-Datei, die nicht dekomprimieren würde, versuchen, den Fehler zu entpacken haben:

gzip -d A.tar.gz
gzip: A.tar.gz: invalid compressed data--format violated

habe ich herausgefunden, dass die Datei können ursprünglich über eine nicht binäre FTP-Verbindung hochgeladen (wir wissen nicht sicher).

Die Lösung war relativ einfach, den Unix-dos2unix Dienstprogramm mit

dos2unix A.tar.gz
dos2unix: converting file A.tar.gz to UNIX format ...
tar -xvf A.tar
file1.txt
file2.txt 
....etc.

Es hat funktioniert! Dies ist eine schlanke Möglichkeit, und vielleicht einen Versuch wert -. Es jemand da draußen helfen kann

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top