为什么文件写入时会发生删除事件

Why does the delete event occur on file write?

本文关键字:删除 事件 文件 为什么      更新时间:2023-10-16

我在OS X中使用内核队列来监视文件事件(示例代码),当我在文件foo.bar上运行示例代码,然后修改文件时,示例会打印出它收到了该文件的删除事件。这怎么可能呢?这是个虫子吗?

我认为"修改"文件是指编辑它或其他什么。

不,这不是bug。大多数文本编辑器将修改后的文件的内容写入另一个文件,然后刷新并关闭该文件,然后删除原始文件并将另一文件重命名为原始文件。

另一方面,一些"简单"的编辑操作,例如使用echo whatever >>thefile将一行附加到文件中,不会删除文件,而是打开/查找/写入/刷新/关闭它。