2009-06-13 84 views

回答

2

答案一如既往'取決於'。 'unique id'是什麼意思?如果文件內容改變,這個id會改變嗎,還是你認爲這個文件是同一個文件?在Unix中,inode與設備一起定義了「唯一標識符」,但即使內容發生更改也會保留該標識符。

如果您現在想要觸摸某個文件,可以在同一臺機器上使用inotify來了解文件(或其前身:dnotify)會發生什麼情況。

如果你需要跨機器,那麼我假設桑巴會使用inotify獲得通知並將其轉換爲SMB/CIFS事件,但我並不熟悉這一點。

如果你想要一個基於內容的ID並因此使用散列,你需要去用戶空間。例如,這正是Git(版本控制系統)的作用:它跟蹤內容的哈希以具有「唯一標識」。

1

如果文件不會被移動,您可以使用散列。

如果您可以讓後臺進程在後臺運行,您可以使用inotify編寫程序來監視移動事件。

如果你不能這樣做,你可以使用inode號碼(但可能更改文件移動)。

相關問題