更少的“更新文件”之类的功能

d13*_*r43 9 bash less watch

我想看一个文件每 5 分钟被覆盖一次less。我怎样才能less跟随新的文件描述符而不是保持旧的显示?watch "cat file"不会这样做,因为文件太长而无法放入一个终端窗口。

bon*_*ing 10

您可以通过发出得到这个效果F命令(Shift+F),而观看的文件less。要停止关注并切换回分页,请按Ctrl+C

由于您的文件仅每 5 分钟更改一次,您还可以使用tail -f并指定更长的睡眠时间-s(默认为 1 秒)。例如,

tail -f -s 60 myfile
Run Code Online (Sandbox Code Playgroud)

myfile每 60 秒检查一次输出。

编辑:由于误导性问题,上述答案并不令人满意。第二次尝试如下:

less每 5 分钟重新打开同一个文件,请尝试以下操作:

while true; do ( sh -c 'sleep 600 && kill $PPID' & less myfile ); done
Run Code Online (Sandbox Code Playgroud)

这将产生一个子shell,它作为另一个shell进程的背景,指示在5分钟后杀死其父进程。然后它打开文件less。当后台 shell 命令杀死父子 shell 时,它会杀死其所有子 shell,包括“less”命令。然后循环重新开始该过程。

我知道杀死它的唯一简单方法是杀死原始 shell 所在的终端。如果这是不可接受的,您可以使用“killfile”技巧:

touch killfile
while [ -f killfile]; do stuff; done
Run Code Online (Sandbox Code Playgroud)

停止做stuffrm在另一个shell中的killfile。


小智 0

你可以尝试这个命令:tail -f file