我有一个问题 如何使用应用程序跟踪 SMB 中的文件? 打开,我很想知道文件是否有唯一的 ID,以便我可以跟踪文件/文件夹何时移动。有这样的事吗?它可能是非常特定于 Debian 的

有帮助吗?

解决方案

答案一如既往地“视情况而定”。“唯一 ID”是什么意思?如果文件内容发生更改,此 id 是否会更改,或者您是否会将其视为同一个文件?在 Unix 中,inode 与设备一起定义了“唯一 ID”,但即使内容发生更改,该 ID 也会保留。

如果您现在想了解文件的内容,您可以在同一台计算机上使用 inotify 来找出文件(或其前身)发生了什么:通知)。

如果您需要跨机器使用它,那么我假设 samba 会使用 inotify 来获取通知并将其转换为 SMB/CIFS 事件,但我对此并不熟悉。

如果您想要基于内容的 ID 并因此使用哈希值,则需要转到用户空间。例如,这正是 Git(版本控制系统)所做的:它跟踪内容的哈希值以获得“唯一的 ID”。

其他提示

如果该文件是不会被移动,你可以使用的哈希值。

如果你可以在后台运行一个后台程序,你写使用程序 inotify 到MONITER移动事件。

如果你不能做到这一点,你可以使用inode编号(但的可能的变化上的文件移动)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top