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
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ändemd5sum -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
md5
? Från vilket paket kommer det?