Eine einfachere Möglichkeit, die md5-Prüfsumme zu vergleichen?

11

Nachdem ich eine Datei heruntergeladen habe, für die eine MD5-Prüfsumme verfügbar ist, überprüfe ich sie derzeit mit

md5 *file* | grep *given_checksum*

z.B

md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2

aber es kam mir komisch vor, grep und die Pfeife für eine sicherlich sehr häufige Aufgabe zu benötigen. Ich habe mich gefragt, ob es einen besseren Weg gibt, dies effizient zu tun.

Ben Griffiths
quelle
Was für ein Werkzeug ist das md5? Aus welchem ​​Paket kommt es?
Manatwork
Ich habe nicht bemerkt, dass es anders ist, bis ich diese Frage tatsächlich gestellt und angefangen habe, nach den Antworten zu suchen, aber ich verwende Bash unter OS X und es ist Apples eigenes Tool, das die Option -c nicht hat. Anscheinend haben sie aufgehört, md5sum in 10.5 zu bündeln ... Ich habe jetzt das ursprüngliche Unix-Tool md5sum installiert.
Ben Griffiths

Antworten:

20

md5sumhat die -cOption, einen vorhandenen Satz von Summen zu überprüfen, und sein Beendigungsstatus zeigt Erfolg / Misserfolg an.

Beispiel:

$ echo "ff9f75d4e7bda792fca1f30fc03a5303  package.deb" | md5sum -c -
package.deb: OK

Finden Sie eine schöne Ressource hier

psusi
quelle
4
Vielen Dank. Nur zur Vervollständigung verwende ich jetzt, md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext"was sauberer erscheint als grep!
Ben Griffiths
hmm, nicht viel Verbesserung gegenüber der ursprünglichen $ md5- Datei | grep Given_checksum und wenn Sie eine Zeichenfolge ohne Berücksichtigung der Groß- und Kleinschreibung verwenden möchten, müssen Sie bei grep -i
StandardNerd
Ich bekam, no properly formatted MD5 checksum lines foundals ich benutzte, md5sum -c <file.md5> <file>aber dieser Befehl funktionierte für mich.
Vishrant
1

Der übliche Bash-Weg wäre:

shopt -s nocasematch
if [[ $(md5sum "$file") = 5d40f31729c992b5a0e67490689fe8ff* ]]
Hauke ​​Laging
quelle
1
md5sum -c <filename>.zip.md5 <filename>.zip

Dies wird Ihnen sagen, ob sie gleich sind.

Dies funktioniert auch mit Teer.

Anthony Petrillo
quelle
0

Inspiriert von Psusis Antwort

echo "$(cut -f1 -d' ' your_file.jar.md5) your_file.jar" | md5sum -c -

Ich habe verwendet, cutda nicht alle md5auf die gleiche Weise gespeichert sind. Beispiel

Vishrant
quelle