"tail" 最新输出文件的最简单方法

Easiest way to "tail" the latest out file

在工作中,我运行 多次从命令行进行模拟,我想将输出捕获到一个文件中,而且还要继续在命令行中查看输出。我目前的工作流程是 运行 像这样:

run sim_0425 > sim_0425.log & tail -f sim_0425.log

这正是我想要的,但问题是日志文件每次都会根据模拟参数命名为不同的东西(例如,这里是“sim_0425”),这有点笨拙每次在所有位置手动重命名它。我经常会忘记将它重命名为其中一个位置,然后我会在某处重写一个文件。

我无法想象没有某种内置方法可以同时输出到文件和标准输出流。谷歌搜索这很有挑战性,因为我基本上是在搜索“> & tail”,但结果并不多:/

您可以为此使用 tee 命令(如果您安装了它,很有可能;它是 Posix 标准的一部分)。 tee 获取其标准输入并将其写入(或附加)到一个或多个文件,并且 将其发送到标准输出:

run sim_0425 | tee sim_0425.log | tail -f

如果您想附加到日志文件,请使用 -a 选项:

run sim_0425 | tee -a sim_0425.log | tail -f