在 UNIX(确切地说是 OS X BSD)中,我在日志文件上有一个“tail -f”命令。有时我想删除这个日志文件,这样我就可以更轻松地在文本编辑器中查看它。
我删除了该文件,然后我的程序在新活动后重新创建了它。但是,我的 tail 命令(以及监视旧日志文件的任何其他命令)没有更新;它仍在监视旧的、已删除的日志文件。
我想我明白这是为什么(文件名只是指向文件数据块的指针)。我想知道如何解决这个问题。理想情况下,当文件名被删除并重新创建时,我的 tail 命令(以及我指向文件的任何其他内容)将能够从新文件中读取数据。
我该如何做呢?
答案1
看看这个-F
选项。我认为它适合你的目的。
来自信息尾部:
-F
This option is the same as `--follow=name --retry'. That is, tail
will attempt to reopen a file when it is removed. Should this
fail, tail will keep trying until it becomes accessible again.