Ho una directory piena di file. Ogni file verrà copiato su un tipo specifico di host di destinazione.
Voglio calcolare una somma MD5 per ogni file nella directory e memorizzare quella somma md5 in un file che corrisponda al nome del file che ha generato la somma, ma con .md5 aggiunto.
Quindi, per esempio, se ho una directory con:
a.bin
b.bin
c.bin
Il risultato finale dovrebbe essere:
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
L'ho provato con find exec e con xargs.
Con trova, ho provato questo comando:
find . -type f -exec md5sum {} + > {}.md5
Usando xargs, ho provato questo comando:
find . -type f | xargs -I {} md5sum {} > {}.md5
In entrambi i casi, finisco con un file chiamato {}.txt, che non è proprio quello che sto cercando.
Qualcuno potrebbe indicare come modificarli per generare i file md5 che sto cercando di generare?
Risposta accettata:
cd /path/to/files &&
for file in *; do
if [[ -f "$file" ]]; then
md5sum -- "$file" > "${file}.md5"
fi
done