参看。OSX 上的FSEvents,默认情况下在触发事件之前收集超过 1 秒(超时可配置)的 FS 事件。
这样做的好处是将一系列文件系统更改收集到单个事件中(因此脚本不会运行超过它需要的时间),但会以延迟为代价。
例如,在 Vim 中保存一个文件会修改许多临时文件(它往往会删除一个缓冲区文件,更新一个撤消文件,并且还会创建然后删除一个名为 的测试文件4193
)以及文件本身。在 OSX 上,使用使用此 API 的小工具(例如我的fswatch 分叉) ,所有这些都可以折叠成一个“批处理事件”,而inotifywait -m
我指定的所有事件都在单独的行中通过流,这使得它变得不简单无需外部处理的组。
我很确定解决方案只是包装它并进行此处理,但我希望有一个隐藏的功能来指定像 FSEvents 允许的超时。