我正在写 notifyfs (目前仅适用于 linux),即:
一个 fsevent 通知程序,它应该与 fuse 和网络文件系统一起使用,例如 fuse.sshfs、cifs 和 nfs。
gui客户端可以用来构建他们的视图的条目缓存
notifyfs 必须有一种方法来确定文件系统,如 /proc/self/mountinfo 中所报告的,是系统相关的文件系统,还是“真正的”文件系统。例如 cpuset、cgroup、devtmpfs 和 sysfs 就是我所说的系统文件系统,而 ext2、ext3 和 tmpfs、vfat 和 nfs、cifs 是“真正的”文件系统。
系统和真实文件系统之间的区别在于,真实文件系统可以通过 inotify 进行观察,而系统文件系统则不能。在 /proc 中的“文件”上放置一个 inotify 手表,您会发现它不起作用。
查看 /proc/filesystems 时,唯一的额外信息是“nodev”,它表示挂载源是否是块设备。当它是块设备时,它就不是系统文件系统。但是当它不是块设备(并且指定了 nodev)时,它并不总是系统文件系统,例如网络文件系统 cifs 和 nfs,或 tmpfs 和 ramfs。
有没有办法确定“nodev”文件系统的行为就像一个真实的文件系统,例如可以通过 inotify 观察?
提前致谢,
史蒂夫