Après avoir téléchargé un fichier dont la somme de contrôle md5 est disponible, je le vérifie actuellement avec
md5 *file* | grep *given_checksum*
par exemple
md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2
mais cela me paraissait drôle dexiger grep et le tube pour ce qui est sûrement une tâche très courante. Adepte de lefficacité des choses, je me demandais quil y avait une meilleure façon de le faire?
Commentaires
Réponse
md5sum
a une option -c
pour vérifier un ensemble existant de sommes, et ses létat de sortie indique la réussite / léchec.
Exemple:
$ echo "ff9f75d4e7bda792fca1f30fc03a5303 package.deb" | md5sum -c - package.deb: OK
Trouvez une belle ressource ici
Commentaires
- Merci. Juste pour terminer, jutilise maintenant
md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext"
qui semble plus propre que dimpliquer grep! - hmm, pas beaucoup damélioration par rapport au fichier $ md5 dorigine | grep given_checksum et si vous voulez utiliser une chaîne insensible à la casse, vous devez vous en tenir à grep -i
- Jobtenais
no properly formatted MD5 checksum lines found
quand je utilisaitmd5sum -c <file.md5> <file>
mais cette commande a fonctionné pour moi.
Réponse
La méthode bash habituelle serait:
shopt -s nocasematch if [[ $(md5sum "$file") = 5d40f31729c992b5a0e67490689fe8ff* ]]
Réponse
md5sum -c <filename>.zip.md5 <filename>.zip
Cela vous dira Ok si ce sont les mêmes.
Cela fonctionne également avec tar.
Réponse
Inspiré de la réponse de psusi
echo "$(cut -f1 -d" " your_file.jar.md5) your_file.jar" | md5sum -c -
Jai utilisé cut
car tous les md5
ne sont pas stockés de la même manière. Exemple
md5
? De quel paquet il vient?