题
我有一个问题 如何使用应用程序跟踪 SMB 中的文件? 打开,我很想知道文件是否有唯一的 ID,以便我可以跟踪文件/文件夹何时移动。有这样的事吗?它可能是非常特定于 Debian 的
解决方案
答案一如既往地“视情况而定”。“唯一 ID”是什么意思?如果文件内容发生更改,此 id 是否会更改,或者您是否会将其视为同一个文件?在 Unix 中,inode 与设备一起定义了“唯一 ID”,但即使内容发生更改,该 ID 也会保留。
如果您现在想了解文件的内容,您可以在同一台计算机上使用 inotify 来找出文件(或其前身)发生了什么:通知)。
如果您需要跨机器使用它,那么我假设 samba 会使用 inotify 来获取通知并将其转换为 SMB/CIFS 事件,但我对此并不熟悉。
如果您想要基于内容的 ID 并因此使用哈希值,则需要转到用户空间。例如,这正是 Git(版本控制系统)所做的:它跟踪内容的哈希值以获得“唯一的 ID”。
其他提示
如果该文件是不会被移动,你可以使用的哈希值。
如果你可以在后台运行一个后台程序,你写使用程序 inotify
到MONITER移动事件。
如果你不能做到这一点,你可以使用inode编号(但的可能的变化上的文件移动)。
不隶属于 StackOverflow