2009-06-13 7 views

Répondre

2

La réponse est comme toujours 'ça dépend'. Que voulez-vous dire par «identifiant unique»? Cet identifiant changerait-il si le contenu du fichier était modifié, ou le considèreriez-vous comme le même fichier? Dans Unix, l'inode et l'appareil définissent l'identifiant unique, mais celui-ci est conservé même si le contenu change.

Si vous voulez maintenant savoir ce qui touche un fichier, vous pouvez utiliser inotify sur la même machine pour savoir ce qui arrive aux fichiers (ou à son précurseur: dnotify).

Si vous avez besoin de l'avoir à travers les machines, alors je suppose que samba utiliserait inotify pour être averti et convertir cela en événements SMB/CIFS, mais je ne suis pas familier avec cela.

Si vous souhaitez un ID basé sur le contenu et que vous utilisez par conséquent des hachages, vous devez accéder à l'espace utilisateur. Par exemple, c'est exactement ce que fait Git (le système de contrôle de version): il suit les hachages du contenu pour avoir un «identifiant unique».

1

Si les fichiers ne vont pas être déplacés, vous pouvez utiliser un hachage.

Si vous pouvez faire fonctionner un démon en arrière-plan, vous écrivez un programme en utilisant inotify pour déplacer des événements.

Si vous ne pouvez pas faire cela, vous pouvez utiliser le numéro d'inode (mais que pourrait changer sur un déplacement de fichier).

Questions connexes