【发布时间】:2017-10-08 09:51:29
【问题描述】:
我正在尝试使用 less --follow-name +F MyLogFile.log 查看我的日志文件。
来自手册页:
如果 --follow-name 是 指定,在 F 命令期间,less 将定期尝试 按名称重新打开文件。
F 向前滚动,并在文件结束时继续尝试阅读 到达。
所以如果我理解正确的话,less 应该继续尝试阅读 MyLogFile.log。但是,当我的程序重新启动并重写 MyLogFile.log 时,在我重新启动 less 之前,less 不会看到新文件。但是不应该“定期尝试按名称重新打开文件”吗?我一定在这里遗漏了一些东西。当我不断重启程序时,如何使用 less 作为日志查看器?
作为参考,这里是--follow-name的完整解释,这似乎与我的经历完全矛盾:
通常,如果输入文件被重命名,而 F 命令是 执行时,less会继续显示的内容 原始文件,尽管名称已更改。如果 --follow-name 是 指定,在 F 命令期间,less 将定期尝试 按名称重新打开文件。如果重新打开成功并且 文件与原始文件不同(这意味着 已创建一个与原始文件同名的新文件 nal(现在重命名)文件),less 将显示的内容 那个新文件。
我正在使用较少的版本 458 和 OSX 10.12.4。
【问题讨论】:
-
简单的答案是附加到您的日志中,而不是创建一个新的/不同的文件。
-
顺便说一句,
--follow-name仅适用于新的和不同的 inode。如果它只是旧的 inode 但被截断(yourprog >log就是这种情况),那么它不是内置的。 -
@Charles 给出了我刚刚发布的答案,这是否意味着只有在首先删除文件时才会创建新的 inode?span>
-
已删除,或者如果您创建一个新文件并将其重命名为当前文件。
-
顺便说一句,您可以使用
ls -i或stat yourfile来查看inode 编号。
标签: shell unix logging less-unix