Ett enklare sätt att jämföra md5-kontrollsumma?

Efter att ha laddat ner en fil som har en md5-kontrollsumma, kontrollerar jag den för närvarande med

md5 *file* | grep *given_checksum* 

t.ex.

md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2 

men det verkade roligt för mig att kräva grep och pipan för det som verkligen är en mycket vanlig uppgift. En stickler för att göra saker effektivt, jag undrade att det finns ett bättre sätt att göra detta?

Kommentarer

  • Vilken typ av verktyg är det md5? Från vilket paket kommer det?
  • Jag insåg inte ' att det var annorlunda tills jag faktiskt ställde den här frågan och började undersöka svaren, men jag ' m använder bash på OS X och det ' s Apple ' s eget verktyg som inte ' t har alternativet -c. Tydligen slutade de samla md5sum i 10.5 … Jag ' har nu installerat det ursprungliga unix md5sum-verktyget.

Svar

md5sum har ett -c -alternativ för att kontrollera en befintlig uppsättning summor och dess exitstatus indikerar framgång / misslyckande.

Exempel:

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

Hitta en trevlig resurs här

Kommentarer

  • Tack. Bara för att slutföra använder jag nu md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext" vilket verkar renare än att involvera grep!
  • hmm, inte mycket förbättring av den ursprungliga $ md5 -filen | grep given_checksum och om du vill använda skiftlägeskänslig sträng måste du hålla fast vid grep -i
  • Jag fick no properly formatted MD5 checksum lines found när jag använde md5sum -c <file.md5> <file> men det här kommandot fungerade för mig.

Svar

Det vanliga bash-sättet skulle vara:

shopt -s nocasematch if [[ $(md5sum "$file") = 5d40f31729c992b5a0e67490689fe8ff* ]] 

Svar

md5sum -c <filename>.zip.md5 <filename>.zip 

Detta kommer att berätta om de är desamma.

Detta fungerar också med tjära.

Svar

Inspirerad av psusis svar

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

Jag använde cut eftersom inte alla md5 lagras på samma sätt. Exempel

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *