【问题标题】:Is there a way to pipe output of time command into a log file? [closed]有没有办法将 time 命令的输出通过管道传输到日志文件中? [关闭]
【发布时间】:2012-11-30 17:01:39
【问题描述】:

我想通过管道输出time 命令的输出,而不是它正在测量时间的作业的输出。我试过了

 /usr/bin/time -v java RandomTest > time.log

但这会将 java RandomTest 的输出重定向到 time.log

【问题讨论】:

标签: linux bash shell unix command-line


【解决方案1】:

您也可以重定向标准错误,例如在bashzsh 中使用>&

>&2>&1 相同,因为它将标准错误重定向到标准输出)

【讨论】:

  • 啊,我怀疑时间可能正在写入 stderr 并尝试 time -v java RandomTest 2 > time.log 无济于事。我不熟悉 >& 构造。 >& time.log2 > time.log 有何不同?
  • @fo_x86 :不确定您是否有错字,但它是2> time.log(不是空格)。祝你好运。
  • 感谢您指出这一点。是的,这是一个粗心的错字。
【解决方案2】:

这个有点棘手,但你可以这样做:

{ time java RandomTest ; } 2> time.log

这样时间的结果会进入time.log,而来自java RandomTeststdout会留在你的tty中。

先试试吧:

{ time ls ; } 2> tmp.txt 

cat tmp.txt

【讨论】:

    【解决方案3】:

    至少在最近的 Linux 发行版中,time 命令支持 -o FILE 选项:

    /usr/bin/time -v -o time.log java RandomTest
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 2019-08-17
      • 2011-06-28
      • 1970-01-01
      相关资源
      最近更新 更多