这篇文章指出了使用less +F
over 的一些原因tail -f
。大多数原因与功能有关,而不是技术原因:less +F
可以突出显示、搜索、浏览文件。
怎么样的技术原因是什么?
AFAIK,less
使用轮询每一秒更新文件,同时tail
,如POSIX定义使用一个循环,1秒睡觉和副本可用任何字节。这已经足够了,但 POSIX 还鼓励实现使用更有效的方法。至少GNU tail使用inotify,所以效率更高。
less
还将文件内容保存在内存中,因此对于大文件(如几 GB),它会降低您的计算机速度。
那么,还有其他技术原因可以使用tail -f
overless +F
吗?
Gil*_*il' 45
我认为你已经涵盖了要点: less +F
读取整个文件,而在许多系统上tail -f
只读取文件的末尾,甚至在读取整个文件的系统上,至少它不会保留整个文件在记忆中。这less +F
对于非常大的文件来说是不切实际的。但是,您可以运行less -n +F
,这会导致less
仅读取文件末尾,但不会显示行号。
在引擎盖下,之间 less -n +F
和tail -f
的主要区别是tail
在某些平台上使用文件更改通知服务(例如,Linux 上的 inotify),这允许它立即显示新数据,而less
可能需要长达 1 秒才能显示新数据因为它在循环中检查新数据并在检查之间休眠。
之间的另一个区别 less +F
andtail -f
是less
将调用其输入过滤器,但这通常不会对日志文件产生任何影响。
有利于的技术差异 less +F
是,您可以使用该-S
选项截断屏幕宽度处的行,而tail
无论多长,您都别无选择,只能显示整行。
在界面方面,使用没有太大的优势 less
.? tail -f
当某事发生时注意是有用的。您甚至可以在后台运行它。如果发生某些事情并且您想更详细地查看该文件,您可以less
在另一个终端中打开它。
如果您想观看多个文件,multitail是最佳选择。即使对于单个文件,multitail 也具有额外的漂亮功能,例如过滤和着色。