1

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

4

2 回答 2

2

答案总是“视情况而定”。你是什​​么意思'唯一ID'?如果文件的内容发生变化,这个 id 会发生变化,还是你会认为它是同一个文件?在 Unix 中,inode 与设备一起定义了“唯一 id”,但即使内容发生变化,它也会保留。

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

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

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

于 2009-06-13T19:46:59.750 回答
1

如果不打算移动文件,则可以使用哈希。

如果您可以在后台运行守护程序,则可以编写一个程序inotify来监视移动事件。

如果你不能这样做,你可以使用 inode 号(但这可能会在文件移动时改变)。

于 2009-06-13T19:28:44.490 回答