J'ai un répertoire plein de fichiers. Chaque fichier sera copié vers un type spécifique d'hôte de destination.
Je souhaite calculer une somme MD5 pour chaque fichier du répertoire et stocker cette somme md5 dans un fichier qui correspond au nom du fichier qui a généré la somme, mais avec .md5 ajouté.
Ainsi, par exemple, si j'ai un répertoire avec :
a.bin
b.bin
c.bin
Le résultat final devrait être :
a.bin
a.bin.md5 # a.bin's calculated checksum
b.bin
b.bin.md5 # b.bin's calculated checksum
c.bin
c.bin.md5 # c.bin's calculated checksum
J'ai essayé cela avec find exec et avec xargs.
Avec find, j'ai essayé cette commande :
find . -type f -exec md5sum {} + > {}.md5
En utilisant xargs, j'ai essayé cette commande :
find . -type f | xargs -I {} md5sum {} > {}.md5
Dans les deux cas, je me retrouve avec un fichier appelé {}.txt, ce qui n'est pas vraiment ce que je recherche.
Quelqu'un pourrait-il indiquer comment les modifier pour générer les fichiers md5 que je cherche à générer ?
Réponse acceptée :
cd /path/to/files &&
for file in *; do
if [[ -f "$file" ]]; then
md5sum -- "$file" > "${file}.md5"
fi
done