在linux上,如何通过系统调用或shell命令监控file/directory的变化?
On linux, how to monitor the change of a file/directory, by system call or shell command?
在windows编程下,win32 api允许我们监视文件或目录的状态:当更改时,有用户回调函数的事件通知。例如。在一个资源管理器window中创建目录时,与该目录相关的其他资源管理器window也会被刷新。
我的问题:如何在 linux 上执行此操作? linux 是否提供任何系统调用或 posix api 或 shell 命令来监视 file/directory?
我知道git可以做到,但是git是怎么做到的?
谢谢!
相当于LinuxAPI是inotify:
The inotify API provides a mechanism for monitoring file system events. Inotify can be used to monitor individual files, or to monitor directories. When a directory is monitored, inotify will return events for the directory itself, and for files inside the directory.
在windows编程下,win32 api允许我们监视文件或目录的状态:当更改时,有用户回调函数的事件通知。例如。在一个资源管理器window中创建目录时,与该目录相关的其他资源管理器window也会被刷新。
我的问题:如何在 linux 上执行此操作? linux 是否提供任何系统调用或 posix api 或 shell 命令来监视 file/directory?
我知道git可以做到,但是git是怎么做到的?
谢谢!
相当于LinuxAPI是inotify:
The inotify API provides a mechanism for monitoring file system events. Inotify can be used to monitor individual files, or to monitor directories. When a directory is monitored, inotify will return events for the directory itself, and for files inside the directory.