web-dev-qa-db-fra.com

Renvoyer le hachage MD5 de tous les fichiers d'un répertoire dans un fichier .txt avec un nom de fichier

J'ai un répertoire d'images.

J'ai besoin du hachage MD5 de chaque fichier de ce répertoire et du nom du fichier placé dans un document .txt. Ce fichier doit être lu ultérieurement afin de référencer le MD5 et le nom du fichier.

Note:
J'aimerais que tous les fichiers de répertoires soient extraits avec moi, en les spécifiant.
J'ai essayé de jouer avec tar et find et je n'arrive pas à trouver une bonne solution ...

Voici un exemple de répertoire:

/Desktop/testing
RandomFilename1.png
RandomFilename2.png
RandomFilename3.png

La sortie .txt est:

RandomFilename1,da39a3ee5e6b4b0d3255bfef95601890afd80709
RandomFilename2,da39a3ee5e6b4b0d3255bfef95601890afd80709
RandomFilename3,da39a3ee5e6b4b0d3255bfef95601890afd80709

J'ai cherché partout en ligne sans succès.
Ce sera sur un terminal Linux.

4
Grayson Moseley

Vous pouvez utiliser la commande bash suivante:

for file in testing/*; do md5sum $file; done > res.txt

Bien sûr, vous devez ajuster le répertoire de destination de res.txt.
Le résultat pourrait ressembler à ceci:

8b1500ea6fe42927891fd1831bb955ba  testing/Pic1.gif
73f3222889a14411a3b78675ed0bc269  testing/Pic2.gif
c5b18ef1ea1346f13f668a7ead4e4c92  testing/Pic3.gif

Ainsi, le hachage MD5 est suivi du nom de fichier et du chemin.

3
zx485

Pour ce que vous voulez faire, exécutez md5sum et utilisez sed ou awk pour transformer la sortie.

md5sum *.png | sed 's/^\([0-9a-f]\+\) \+\(.\+\)/\2,\1/' >images.md5sums
md5sum *.png | awk '{print $2","$1}' >image.md5sums

Cependant, la sortie en clair de md5sum est hash filename et équivaut à votre format. L'utilisation de ce format de sortie standard md5sum est souvent plus pratique, car vous pouvez l'utiliser directement avec md5sum -c pour vérifier le hachage des fichiers (après une copie ou un transfert réseau). Certains autres utilitaires peuvent également s'attendre à ce format particulier.

1
xenoid