En md5
comprobará varios archivos por usted. Simplemente enumere todos los archivos que desee después del comando. Por ejemplo md5 md1.gz md2.gz md3.gz
. Dará salida a los hashes md5 así:
MD5 (md1.gz) = 1c2c02b085a1bc2fed683eca86c0df02
MD5 (md1.gz) = c5515451d8f90a822457a4a8e4bf1791
Si sólo desea los hashes, utilice la función -q
se imprimirá sólo el hash, sin la información de identificación.
Supongo que quieres comparar el hash de los archivos con el del archivo .md5 correspondiente. Podrías escribir un rápido shell script para comprobar cada hash generado contra el almacenado en el archivo .md5.
Algo así debería funcionar:
#!/bin/bash
for file in "$@"; do
generatedhash=$(md5 -q "$file")
storedhash=$(< "$file".md5)
if [[ $generatedhash != $storedhash ]]; then
echo "Hash for file '$file 'does not match"
fi
done
Guárdelo en un archivo de texto, llámelo algo así como checkmd5.sh y haga lo siguiente chmod +x checkmd5.sh
en el terminal.
Se imprimirá una advertencia para todos los archivos que no tienen un hash coincidente. No imprime nada si los hashes coinciden. Es rápido y sucio, así que disculpa si no funciona en tu caso particular. Pero basándonos en los ejemplos que has dado, si ejecutas ./checkmd5.sh md*.gz
debería comprobar los hashes de los archivos .gz comparándolos con los archivos .md5 correspondientes e indicarle si alguno es incorrecto.