我打开了两个终端测试了下tail命令的实时监控,但没有成功
来源:3-5 浏览和切换目录

OP卡塔库栗
2020-05-06
写回答
1回答
-
Vim 是将原来的文件删除后,然后再生成一个新的文件。而 tail -f 命令是根据文件的 inode 来追踪文件的。Vim 把原来的文件删除,新生成的同名文件的 inode 已经发生了变化,所以导致 tail -f 命令失效。
而
echo haha >> hello.txt
是可以生效的。
结论:tail -f 命令通过 inode 追踪文件,如果文件的 inode 发生了变化,将会使 tail -f 失效。
解决方案:使用 tail -F 替代 tail -f,根据 man tail 的说明,tail -F 在文件不可以打开的时候,会重试打开该文件,也就是在 Vim 删除旧文件,创建新文件的过程中,tail 短暂性失去了对 hello.txt 文件的访问权限,加上 -F 选项后,tail 在文件恢复访问后可以重新对文件实施跟踪。
112020-05-12
相似问题