为什么更少的尾巴模式停止工作?


11

less在Linux上以尾部模式使用该命令(F命令或更少-f)始终停止在某些计算机和/或某些文件上工作。新变化只会停止显示。

我知道我很早以前已经解决了这个问题,但是我不记得解决方案是什么。

有任何想法吗?


您是否尝试过使用strace来查看它的作用(不是)?也许您会看到一个错误。
wfaulk

仅供参考,这仍然没有答案,因为相关文件没有被滚动/旋转/重新创建。
TREE

Answers:


12

尝试使用less --follow-name。即使文件具有相同的名称,更新文件的过程也可能会更改文件的索引节点-从操作系统的角度来看,它是更新后的新文件。


+1个完美答案,这就是引入此选项的原因。请注意,它--follow-name是在2007年11月15日发布的less v415(greenwoodsoftware.com/less/news.415.html)中引入的。因此,旧的Linux安装可能没有此版本。
sleske 2011年

3

您是否正在查看由logrotate旋转的日志文件?如果将较少查看的文件重命名(例如,通过logrotate从log更改为log.0),那么即使将新条目写入不同的文件(具有原始名称),较少的文件仍将继续监视该文件。


如果是这种情况,请尝试tail --follow = name [filename](如果文件重命名,tail会定期重新打开该文件)。见gnu.org/software/coreutils/manual/html_node/...
兰迪Orrison

不,日志没有旋转。这是同一个文件。
TREE

1

也许您可以尝试tail -f [filename]


4
使用更少的内容,您可以“暂停尾巴”(通过使用Ctrl-c键)转到特定的行,然后稍后再恢复(使用F键)。这就是为什么在某些情况下它比“ tail -f”更可取的原因。
dogbane

tail -f确实可以工作,但是我更愿意在更少的时间内工作。
TREE

我知道了。不知道。
brandtaetter

0

我做的less +F --follow-name--follow-name仅监视同名文件而不接收我的情况下的传入更改(CentOS 7)。

实际上,我为此创建了一个别名:

将此行添加到/etc/profile.d/alias.sh

alias lf="less +F --follow-name"

保存并获取以立即使用。 . /etc/profile.d/alias.sh

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.