Une façon plus simple de comparer la somme de contrôle md5?

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

  • Quel genre doutil est ce md5? De quel paquet il vient?
  • Je nai ' pas réalisé que cétait différent avant de poser cette question et de commencer à chercher les réponses, mais je ' m en utilisant bash sous OS X et son propre outil ' s Apple ' qui ne ' t ont loption -c. Apparemment, ils ont cessé de regrouper md5sum dans la version 10.5 … Jai ' installé loutil original unix md5sum.

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 utilisait md5sum -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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *