Jednodušší způsob porovnání kontrolního součtu MD5?

Po stažení souboru, který má k dispozici kontrolní součet md5, jej aktuálně kontroluji pomocí

md5 *file* | grep *given_checksum* 

např.

md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2 

ale zdálo se mi legrační vyžadovat grep a rouru, což je jistě velmi běžný úkol. Připomínám, že děláte věci efektivně, napadlo mě, že je to lepší způsob?

Komentáře

  • Co je to za nástroj md5? Z jakého balíčku pochází?
  • Neuvědomil jsem si ', že to bylo jiné, dokud jsem se na tuto otázku vlastně nezeptal a nezačal hledat odpovědi, ale já ' m používající bash na OS X a ' s Apple ' vlastním nástrojem, který ' nemá možnost -c. Zřejmě přestali svazovat md5sum v 10.5 … ' jsem nyní nainstaloval původní unixový nástroj md5sum.

Odpovědět

md5sum má možnost -c zkontrolovat existující množinu součtů a její stav ukončení označuje úspěch / neúspěch.

Příklad:

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

Najít pěkný zdroj zde

Komentáře

  • Děkuji. Jen pro dokončení nyní používám md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext", který vypadá čistěji než zahrnutí grep!
  • hmm, oproti původnímu $ md5 souboru | grep given_checksum a pokud chcete použít řetězec nerozlišující velká a malá písmena, musíte se držet grep -i
  • dostával jsem no properly formatted MD5 checksum lines found, když jsem používal md5sum -c <file.md5> <file>, ale tento příkaz pro mě fungoval.

Odpověď

Obvyklý bash způsob by byl:

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

odpověď

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

Toto vám řekne dobře, pokud jsou stejné.

Toto funguje také s tar.

Odpověď

Inspirováno odpovědí psusi

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

Použil jsem cut, protože ne všechny md5 jsou uloženy stejným způsobem. Příklad

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *