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