inotify 是如何工作的?

inotify 是如何工作的?

根据维基百科,

inotify 是一个 Linux 内核子系统,它注意到文件系统的更改。它取代了之前的 dnotify。

同步文件的程序(例如 crashplan、dropbox、git)在用户指南中建议用户增加max_user_watches1,2,3)。

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

我假设每个目录中都创建了一个“inotify”文件。它是否正确?有没有办法从命令行与 inotify 交互?

资源
为什么 inotify 事件在 NFS 挂载上不同?
Inotifywait 目录中存在大量文件

答案1

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

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

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

相关内容