`entr`:更新 ID 是怎样的?没有时间的麻烦? &,为什么 -r 不能与 -d 一起使用?

`entr`: How is update ID'd? noatime troubles? &, why -r not work with -d?

我有一个定期附加到日志文件的脚本。当我使用 entr(发现 here)监视该日志文件,然后触摸日志时,一切正常,但是当脚本附加到文件时,entr 失败。这可能是因为我在我的 fstab 中设置了 noatime - 但这只会停止更新访问时间而不是修改时间,所以这让我感到困惑。

我已经检查过,虽然 atime 没有更新,但 ctime (ls -lc) 肯定是。 entr 真的可以依赖 atime 吗?我使用 noatime 因为我有一个 SSD。所以我该怎么做?我只是偶然发现 lazytime。这能解决问题吗?

由于监视日志文件不起作用,我尝试 entr -cdr 在更新文件目录(创建新文件)的同时作为日志(日志在不同的目录中)目录)。 entr 识别目录内容何时更改,但 -r 不起作用。 entr 进程刚刚结束,表示 "entr: directory altered"。

如果知道如何解决这个问题或者我是否应该返回 inotify,我们将不胜感激。

编辑: 我现在是用inotify写的,写入日志文件时报告的事件,很合理,"MODIFY."

事实证明 entr 不响应 IN_MODIFY 事件,而仅响应这些事件(在 Linux 中):

IN_CLOSE_WRITE|IN_DELETE_SELF|IN_MOVE_SELF|IN_CREATE

此外,IN_ATTRIB,但前提是 file-mode 或 inode 编号发生变化。

在BSD/OSX中是:

NOTE_DELETE|NOTE_WRITE|NOTE_RENAME|NOTE_TRUNCATE|NOTE_ATTRIB

此外,选项 -r-d 选项的上下文中无效。只在entr监控文件时有效。

请参阅开发者的 comments. Also, more info 条目。