有时我会在日志文件上运行一个less +F
,然后截断。 我不想意识到该文件已被截断,并开始按照现在的文件。 目前,我被迫做了以下事情:
less +F my-file.txt
printf "" > my-file.txt
less +F my-file.txt
每次我截断文件(每天几十次 ),我必须执行步骤3-4。 这真是一个痛苦。
我想要做:
less +F my-file.txt
(以及其他需要的选项) printf "" > my-file.txt
就是这样。 less
会自动意识到该文件已被截断,并从头开始跟随新文件。
这可能吗? 我应该less用什么标志来达到这个目的?
不是你正在寻找的答案,但你可以尝试使用“ 尾巴-F ”(而不是“ 尾巴-F ”),这将给你你正在寻找的行为。
你为什么不把它们组合起来呢?
tail -F filename | tee | less
这对我很好。
你想指定--follow-name
参数为less
。 从手册页 :
通常情况下,如果在执行F命令时重命名input文件,那么即使更改了名称,也会继续显示原始文件的内容。 如果指定了–follow-name,则在F命令期间,less会定期尝试按名称重新打开该文件。 如果重新打开成功,并且文件是与原始文件不同的文件(这意味着已经创build了与原始文件(现已重命名)文件相同名称的新文件),则会显示新文件的内容。
所以你现在的步骤是:
less --follow-name +F my-file.txt
printf "" > my-file.txt
PS而不是使用printf,只有redirect操作符: > my-file.txt
才会截断大量的shell