¿El mejor enfoque para detectar un movimiento o cambiar el nombre de un archivo en Linux?

Probablemente alguna solución podría ser aplicable a Windows, sin embargo, no estoy familiarizado con el sistema operativo Windows, por lo que se centrará en Linux.

Según tengo entendido, todos los sistemas de archivos Unix tienen el concepto de inodes, que es donde se almacenan los metadatos del sistema de archivos y el "archivo". Por lo tanto, me pregunto si es posible utilizar el número de inodo con información adicional para rastrear archivos que se renombran o se mueven.

Lo que estaba proponiendo hacer era tener un escaneo inicial que crearía una base de datos de nombre de archivo / ruta, su disco / unidad en la que se encuentra, su número de inodo y, finalmente, algún tipo de suma de comprobación (sha-1).

Esto permitiría que el sistema pueda usar el número de inodo para detectar rápidamente si un archivo se movió o cambió de nombre, y luego seguiría con la suma de verificación para verificar si realmente es el mismo archivo.

Puedo ver algunos posibles problemas con este esquema:

Los archivos podrían modificarse y luego moverse / renombrarse, y esto no podría detectarlo porque la suma de comprobación no coincidiría.Algunas aplicaciones (¿la mayoría?) Cuando modifican el archivo crearán un nuevo archivo temporal y luego lo cambiarán por el actual, por lo que el inodo no coincidirá de todos modos, incluso si el archivo no se modifica al final ...Tendría que almacenar en qué dispositivo / sistema de archivos está porque los inodos en cada sistema de archivos son únicos para ese sistema de archivos.Tendría que lidiar con enlaces duros

Me pregunto si hay otras trampas que me estoy olvidando aquí. Esperaba poder usar los inodes para rastrear rápidamente qué archivos se movieron o cambiaron de nombre, luego seguir con una suma de verificación para confirmar que en realidad es el mismo archivo.

Respuestas a la pregunta(3)

Su respuesta a la pregunta