用于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/")"