Verwenden Sie md5sum, um die Datei in einem Skript zu überprüfen

15

Ich möchte eine Datei mit überprüfen md5sum -c file.md5. Ich kann das von Hand machen, aber ich weiß nicht, wie ich die Gültigkeit in einem Skript überprüfen soll.

Robin
quelle

Antworten:

25

Sie können md5sumden Rückgabestatus von verwenden:

if md5sum -c file.md5; then
    # The MD5 sum matched
else
    # The MD5 sum didn't match
fi

Um die Dinge sauberer zu machen, können Sie hinzufügen --status, dass md5sum(möglicherweise nur in der GNU-Version) still zu sein gilt:

if md5sum --status -c file.md5; then
    # The MD5 sum matched
else
    # The MD5 sum didn't match
fi

Kürzere Formulare funktionieren bei Bedarf genauso gut:

md5sum --status -c file.md5 && echo OK
Stephen Kitt
quelle
md5sum --status -c file.md5 && echo OKsucht leider nicht nach fehlenden oder zusätzlichen Dateien
Erik Martino
1
@Erik von welcher Version md5sumhast du? In Bezug auf fehlende Dateien md5sum --status -c file.md5 && echo OKschlägt auf den Systemen, die ich überprüft habe, fehl (und es wird nicht "OK" gedruckt), wenn eine in aufgelistete Datei file.md5fehlt. In Bezug auf zusätzliche Dateien md5sum -cbeschwert es sich nie über zusätzliche Dateien, sondern überprüft nur die Dateien, die in der angegebenen Prüfsummendatei aufgeführt sind.
Stephen Kitt
1
md5sum --status -c file.md5 && echo OKErträge md5sum: stat 'foo': No such file or directoryund OKauf einem Mac
Erik Martino