如何查看整个文件并等待更多数据添加到该文件中?

mal*_*orm 23 command-line tail

我想读取整个文件并让它等待输入,就像tail -f 但是显示完整的文件一样。

这个文件的长度总是会改变的,因为这是一个.log文件。

如果我不知道文件的长度,我该怎么做?

Lea*_*ros 38

有一种更好的方法可以实现这一目标:

less +F <file>
Run Code Online (Sandbox Code Playgroud)

它将向您显示整个文件,具有 的全部功能less并等待新的输入。如果您想停止等待输入并阅读特定部分,您可以使用 停止它^C并使用 继续F

F命令在 中始终可用less,如果您决定在 中打开文件时观察更改less,点击F将打开它。感谢hiergiltdiestfu通配符指出这一点。

  • 这确实比 `tail` 好多了。谢谢你的提示; 我永远不会想到为此使用`less`。其他人注意:你也可以只运行 `less &lt;file&gt;` 然后输入 `F`。 (2认同)

Ant*_*hon 33

tail允许您添加-n以指定从末尾开始显示的行数,可与-f. 如果该参数-n与开始+即从线的计数开始(01显示整个文件,2指示跳过第一行,通过@Ben所指示的)。所以只需这样做:

tail -f -n +0 filename
Run Code Online (Sandbox Code Playgroud)

如果您的日志文件会旋转,你可以添加--retry(或组合-f and --retry-F如@Hagen建议)

另请注意,在图形终端中,您可以使用鼠标和PageUp/PageDown滚动回历史记录(假设您的缓冲区足够大),即使您使用Ctrl+C退出,此信息也会保留在那里tail。如果您使用less它就不那么方便了,AFAIK 您必须使用键盘进行滚动,而且我不知道less如果您忘记以-X.