Überprüfen Sie die Gültigkeit der GZ-Datei

Überprüfen Sie die Gültigkeit der GZ-Datei

Wie kann ich die Gültigkeit einer GZ-Datei überprüfen? Ich habe den Hash der Datei nicht, verwende sie, gzip -taber es wird keine Ausgabe zurückgegeben.

Antwort1

Der gzip -tBefehl gibt lediglich einen Exit-Code an die Shell zurück, der angibt, ob die Datei den Integritätstest bestanden hat oder nicht.

Beispiel (in einem Skript):

if gzip -t file.gz; then
    echo 'file is ok'
else 
    echo 'file is corrupt'
fi

Durch das Hinzufügen -vwird das Ergebnis tatsächlich mit einer Meldung gemeldet.

Beispiel:

$ gzip -v -t file.gz
file.gz:        OK

Die Datei ist also in Ordnung. Lassen Sie uns die Datei beschädigen (indem wir das Zeichen 0in Byte 40 in die Datei schreiben) und es erneut versuchen.

$ dd seek=40 bs=1 count=1 of=file.gz <<<"0"
1+0 records in
1+0 records out
1 bytes transferred in 0.000 secs (2028 bytes/sec)
$ gzip -v -t file.gz
file.gz:        gzip: file.gz: Inappropriate file type or format

Die Integrität einer Datei in Bezug auf ihre Komprimierungnichtgarantieren, dass die DateiInhaltist das, was Sie glauben. Wenn Sie eine MD5-Prüfsumme (oder eine ähnliche Prüfsumme) der Datei von demjenigen haben, der sie bereitgestellt hat, können Sie eine zusätzliche Bestätigung erhalten, dass die Datei nicht nur ein gültiges gzipArchiv ist, sondern auch, dass ihr Inhalt Ihren Erwartungen entspricht.

Antwort2

gzip -tnichthabenjede Ausgabe außer dem Rückgabecode, sofern es sich um eine korrekt mit GZIP komprimierte Datei handelt.

Es wird nur dann ein Fehler zurückgegeben, wenn Sie es bei etwas versuchen, dasist nichteine gzip-komprimierte Datei:

steamsrv@leviathan:~$ gzip -t commands.txt

gzip: commands.txt: not in gzip format

Fazit: Ihre Datei ist mit ziemlicher Sicherheit eine GZIP-komprimierte Datei. Was ich Ihnen nicht sagen kann, ist, ob es sich um die genaue Datei handelt, die Sie vermuten, und wofür der Hash nützlich wäre ...

verwandte Informationen