首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新打开被截断的文件,同时使用更少的文件。

重新打开被截断的文件,同时使用更少的文件。
EN

Server Fault用户
提问于 2013-05-02 09:25:08
回答 3查看 904关注 0票数 3

有时,我在日志文件上运行less +F,然后截断日志文件。我希望less意识到该文件已被截断,并开始按照现在的情况跟踪该文件。目前,我被迫做以下工作:

  1. (终端1) > less +F my-file.txt
  2. (终端2) > printf "" > my-file.txt
  3. (终点站1) >退出较少
  4. (终端1) >重新启动更少:less +F my-file.txt

每次截断文件时,我都必须执行第3-4步(这是一天几十次)。这真的很痛苦。

我想做的是:

  1. (终端1) > less +F my-file.txt (以及所需的任何额外选项)
  2. (终端2) > printf "" > my-file.txt

就是这样。less将自动意识到文件已被截断,并从一开始就开始跟踪新文件。

这个是可能的吗?为了实现这一点,我应该使用什么标志来减少?

EN

回答 3

Server Fault用户

发布于 2013-05-02 11:09:15

不完全是你想要的答案,但是你可以尝试使用'tail -F‘(而不是’-f')来给出你想要的行为。

票数 1
EN

Server Fault用户

发布于 2013-05-02 15:31:43

你为什么不把它们像这样结合起来呢?

tail -F filename | tee | less

这对我很管用。

票数 0
EN

Server Fault用户

发布于 2013-05-02 15:43:16

您希望将--follow-name参数指定为less。来自手册页

通常,如果输入文件在执行F命令时被重命名,那么less将继续显示原始文件的内容,尽管它的名称有所更改。如果指定了--跟随名称,则在F命令期间,less将定期尝试按名称重新打开文件。如果重新打开成功,并且该文件与原始文件不同(这意味着一个新文件已经创建,其名称与原始文件(现在重命名)相同),那么更少的文件将显示该新文件的内容。

所以你现在的步骤是:

  1. (终端1) > less --follow-name +F my-file.txt
  2. (终端2) > printf "" > my-file.txt
  3. (候机楼1) >享受吧!

不使用printf,许多shell将只使用重定向运算符:> my-file.txt

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/504384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档