Ich habe die Frage gefunden, wie festgestellt werden kann, ob Daten eine gültige TAR-Datei ohne Datei sind. , aber ich habe mich gefragt: Gibt es eine fertige Kommandozeilenlösung?
gzip
validation
tar
gunzip
Understack
quelle
quelle
-v
wenn Sie nur die Ausgabe an leiten/dev/null
?-z
Option ist ebenfalls nicht erforderlich. Im Extraktions- oder Listenmodus wird nichts ausgeführt.-z
Das ist definitiv bei GNU tar der Fall - wissen Sie, ob dies anderswo wahr ist (BSD usw.)?tar.gz
? Support-Informationen?Sie könnten wahrscheinlich die Option gzip -t verwenden, um die Integrität der Dateien zu testen
http://linux.about.com/od/commands/l/blcmdl1_gzip.htm
von: http://unix.ittoolbox.com/groups/technical-functional/shellscript-l/how-to-test-file-integrity-of-targz-1138880
So testen Sie die gzip-Datei ist nicht beschädigt:
Das Testen der darin enthaltenen TAR-Datei ist nicht beschädigt:
Als Teil der Sicherung könnten Sie wahrscheinlich einfach den letzteren Befehl ausführen und den Wert von $? danach für einen 0 (Erfolg) Wert. Wenn entweder der Teer oder der GZIP ein Problem hat, $? wird einen Wert ungleich Null haben.
quelle
bzip2 -t file.bz2
für bz2-Dateien.tar -t > /dev/null
(Anmerkung:t
vs-t
)?Wenn Sie einen echten Testextrakt einer TAR-Datei erstellen möchten, ohne auf die Festplatte zu extrahieren, verwenden Sie die Option -O. Dadurch wird der Extrakt anstelle des Dateisystems auf die Standardausgabe übertragen. Wenn die TAR-Datei beschädigt ist, wird der Prozess mit einem Fehler abgebrochen.
Beispiel für einen fehlgeschlagenen Teerballtest ...
Arbeitsbeispiel ...
quelle
> /dev/null
für das Arbeitsbeispiel verwenden.Sie können den Inhalt der Datei * .tag.gz auch mit
pigz
(parallel gzip) überprüfen, um die Archivprüfung zu beschleunigen:quelle
Ich habe den folgenden Befehl ausprobiert und sie funktionieren gut.
Wir können jedoch feststellen, dass diese beiden Befehle zeitaufwändig sind. Vielleicht brauchen wir einen schnelleren Weg, um die Unversehrtheit der Komprimierungsdateien festzustellen.
quelle
Eine nette Option ist die Verwendung,
tar -tvvf <filePath>
die eine Zeile hinzufügt, die die Art der Datei meldet.Beispiel in einer gültigen .tar-Datei:
Beschädigte .tar-Datei:
quelle
Dies sind alles sehr suboptimale Lösungen. Aus der GZIP-Spezifikation
Muss in die Sprache codiert werden, die Sie verwenden.
quelle
Manchmal ja, aber manchmal nicht. Sehen wir uns ein Beispiel für eine beschädigte Datei an:
Es zeigt:
Auch wenn Sie ausführen
Teer sagte, dass es keinen Fehler gab:
aber die Datei wurde beschädigt, es hat jetzt "Fool" anstelle von "Pete".
quelle