tail -f 不跟踪文件变化

tail -f 不跟踪文件变化

我最近正在研究使用来tail -f监控一些文本文件,如下所示:tail -f /var/sometext

但是,当我进行一些测试时,它似乎不起作用。我所做的是创建一个新文件并运行:tail -f /home/name/text然后,我在 vim 中打开日志并进行了一些编辑,保存了它,但 tail 似乎没有“看到”更改。

奇怪的是,运行echo "hello" >> /home/name/text似乎工作正常(tail 看到变化)。我读到过一些文章说这与文件描述符和保存文件时创建的新 inode 有关。

有人能帮我解释一下吗?我不太明白它是如何工作的,但我知道文件描述符是什么。

答案1

-f按照 inode 顺序排列。如果您想要按照名称顺序排列(例如,当程序完全重新创建文件时),则可以使用-F

答案2

tail -f监视文件末尾,当文件末尾移动时,它会打印新内容并等待文件末尾再次移动。换句话说,文档中间的更改不会被找到tail -f,只能被追加。

答案3

事实上,真实的故事是:

tail -f监控内存,而不是磁盘。但它无法访问受保护的内存,例如对文本编辑器打开的文件的编辑。

相关内容