是否可以执行cat logfile | tail -f
?出于某种原因,它只读取初始日志,但不会更新传入的条目。我知道我可以直接执行tail -f logfile
。
我只是想知道为什么这不起作用,以及是否tail -f
必须始终先使用管道然后再使用另一根管道?
答案1
只需执行tail -f logfile
。当您首先执行 cat 时,您正在对文件进行 cat 处理,如果您想获取新条目,则需要再次执行 cat 处理。如果您只是执行tail -f logfile
,那么它将在文件更新时不断更新屏幕(尽管您可能希望执行tail -F logfile
,因此如果日志文件被滚动并创建新文件,它将继续工作)。
换句话说,cat
执行一次,输出将发送到 tail。直接在文件上运行 tail 会导致 tail 执行并保持运行,因此您可以不断获得更新(即使用 -f)。