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
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 i se moc nevylepšuje > | 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žívalmd5sum -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
md5
? Z jakého balíčku pochází?