md5 recursivo

Si queremos verificar la integridad de un árbol de directorios de forma recursiva, es decir, que se analicen los ficheros del directorio indicado así como los posibles ficheros de sus subdirectorios y los subdirectorios de estos, etc.; normalmente la herramienta que acompaña al sistema no nos permite hacerlo.

Es razonable que siga la filosofía UNIX: herramientas que hacen solo una cosa, pero la hacen bien. Para eso tenemos otros comandos UNIX, para aumentar la funcionalidad mediante pipes y redirecciones.

Mi propuesta es sencilla:

código shell
DIR="/path/al/directorio"
find $DIR/* -type f -print0 | xargs -0 -n 1 md5 >> $DIR.MD5

Donde $DIR será el directorio a analizar.

find mostrará todos los ficheros tipo 'fichero' acabados en NULL. Esto del NULL se hace para que se procesen adecuadamente nombres de fichero con espacios y tal (nunca habrá un NULL en un nombre de fichero, tiene sentido).

find muestra un nombre de fichero por linea en la salida estándar. Cada una de esas lineas acabada en NULL (lo indicamos con el -0) es recogida por xargs (solo una por el -n 1) y ejecutamos md5 con ese valor como argumento.

Finalmente se van añadiendo las salidas de md5 a $DIR.MD5.

Si posteriormente queremos comprobar la integridad solo tendremos que hacer:

$ md5 -c directorio.MD5

Dependiendo de la herramienta de la que dispongamos en nuestro sistema la opción -c fichero podría variar, pero por ahora en todos los sistemas libres que uso funciona muy parecido.



Publicidad

! Esta entrada no permite nuevos comentarios.

Los comentarios se bloquean automáticamente tras 15 días desde la publicación del artículo.

Si deseas comentar algo relacionado con el texto, puedes enviarme un e-mail.