Tengo un directorio lleno de archivos. Cada archivo se copiará en un tipo específico de host de destino.
Quiero calcular una suma MD5 para cada archivo en el directorio y almacenar esa suma md5 en un archivo que coincida con el nombre del archivo que generó la suma, pero con .md5 adjunto.
Entonces, por ejemplo, si tengo un directorio con:
a.bin
b.bin
c.bin
El resultado final debería ser:
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
He intentado esto con find exec y con xargs.
Con find, probé este comando:
find . -type f -exec md5sum {} + > {}.md5
Usando xargs, probé este comando:
find . -type f | xargs -I {} md5sum {} > {}.md5
En cualquier caso, termino con un archivo llamado {}.txt, que no es realmente lo que estoy buscando.
¿Alguien podría señalar cómo modificarlos para generar los archivos md5 que estoy buscando generar?
Respuesta aceptada:
cd /path/to/files &&
for file in *; do
if [[ -f "$file" ]]; then
md5sum -- "$file" > "${file}.md5"
fi
done