Unix“tail”在截断时清除屏幕吗?

Unix“tail”在截断时清除屏幕吗?

用于tail -F跟踪可能尚不存在的文件,并且它可以跨截断工作,如下所示:

tail: cannot open `mylog.log' for reading: No such file or directory
tail: `mylog.log' has appeared;  following end of new file
run1
run1
run1
tail: mylog.log: file truncated
run2
run2
run2

我只想看到当前运行的输出,因为一个屏幕上可以容纳多个运行,而且很难分辨一个运行在哪里结束,下一个运行在哪里开始。在执行运行之前,我发现自己使用

rm mylog.log; clear && tail -F mylog.log

但每次运行前我都要记得这么做。我意识到如果tail在截断发生时清除屏幕,它就会给我我想要的行为,而不需要我进行任何交互。

手册tail页似乎没有表明这是可能的。我确信我不是第一个想要这种行为的人,有其他人用过其他方法来实现它吗?

答案1

此代码片段将起作用:

tail -F $LOGFILE 2>&1 | sed -e "$(echo -e "s/^\(tail: .\+: file truncated\)$/\1\e[2J/")"

相关内容