【发布时间】: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
我想通过管道输出time 命令的输出,而不是它正在测量时间的作业的输出。我试过了
/usr/bin/time -v java RandomTest > time.log
但这会将 java RandomTest 的输出重定向到 time.log
【问题讨论】:
标签: linux bash shell unix command-line
您也可以重定向标准错误,例如在bash 或zsh 中使用>&
(>& 与 2>&1 相同,因为它将标准错误重定向到标准输出)
【讨论】:
time -v java RandomTest 2 > time.log 无济于事。我不熟悉 >& 构造。 >& time.log 与 2 > time.log 有何不同?
2> time.log(不是空格)。祝你好运。
这个有点棘手,但你可以这样做:
{ time java RandomTest ; } 2> time.log
这样时间的结果会进入time.log,而来自java RandomTest的stdout会留在你的tty中。
先试试吧:
{ time ls ; } 2> tmp.txt
cat tmp.txt
【讨论】:
至少在最近的 Linux 发行版中,time 命令支持 -o FILE 选项:
/usr/bin/time -v -o time.log java RandomTest
【讨论】: