Fanotify 的缺点Fanotify 目前支持的文件系统事件类型比 inotify 少很多。
表 2. inotify 和 fanotify 所支持的文件系统事件对比文件系统事件 Inotify Fanotify ACCESS Y Y MODIFY Y Y ATTRIB Y
CLOSE_WRITE Y Y CLOSE_NOWRITE Y Y OPEN Y Y MOVED_FROM Y
MOVED_TO Y
CREATE Y
DELETE Y
DELETE_SELF Y
MOVE_SELF Y
UNMOUNT Y
OPEN_PERM
Y CCESS_PERM
Y
从上表可以看出,相比 inotify,fanotify 所支持的文件系统事件少很多,尤其是 fanotify 不支持 move,这使得 fanotify 无法应用于类似桌面搜索或者实时远程文件系统同步等应用。当文件从一个目录移动到另一个目录,或者被改名时,fanotify 不产生任何通知。这使得一些使用 inotify 的应用因此无法迁移到 fanotify 上面来。
此外和 inotify 一样,目前 fanotify 无法做到 sub-tree 监控。虽然 Eric 很久之前就声称支持 sub-tree 监控没有技术障碍,但直到目前我们依然没有看到 fanotify 可以支持 sub-tree 监控。
但 fanotify 毕竟还很年轻,有些缺点也是可以理解的吧。。。假如前面说的那些特性令您有了一些兴趣,那么下面我们就来看看如何使用 fanotify 进行编程吧。