inotify 是如何工作的?

spu*_*der 16 inotify

根据维基百科

inotify 是一个 Linux 内核子系统,用于通知文件系统的变化。它取代了之前的 dnotify。

同步文件的程序(例如 crashplan、dropbox、git)在用户增加的用户指南中推荐max_user_watches123)。

根据我对 inotify 的理解,操作系统被“告知”文件已被更改,而不是要求操作系统“去寻找”更改。

我假设每个目录中都创建了一个“inotify”文件。这样对吗?有没有办法从命令行与 inotify 交互?

资源
为什么 inotify 事件在 NFS 挂载上有所不同?
Inotify 等待目录中的大量文件

Gil*_*il' 22

Inotify 是一个内部内核工具。没有“inotify 文件”。有专门的系统调用inotify_initinotify_add_watchinotify_rm_watch允许进程进行登记时,某些文件系统事件发生时自己被通知。当事件发生时,进程通过返回的文件描述符接收事件的描述inotify_init

操作系统不会“被告知”文件已被更改:它知道,因为它正在更改。是应用程序被告知文件已更改,而不必去查找。

该程序inotifywait提供了一种从命令行使用 inotify 的简单方法。