在 linux 上,如何通过系统调用或 shell 命令监视文件/目录的更改?

Tro*_*yvs 1 linux api system file monitor

在 windows 编程下,有 win32 api 允许我们监视文件或目录的状态:当更改时,有用户回调函数的事件通知。例如,在一个资源管理器窗口中创建目录时,与该目录相关的其他资源管理器窗口也将被刷新。

我的问题:如何在 linux 上做到这一点?linux 是否提供任何系统调用或 posix api 或 shell 命令来监视文件/目录?

我知道 git 可以做到,但是 git 是如何做到的?

谢谢!

小智 5

等效的 Linux API 是inotify

inotify的API提供了用于监控文件系统事件的机制。Inotify 可用于监视单个文件或监视目录。当目录被监视时,inotify 将返回目录本身和目录内文件的事件。