为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Linux中将time命令的输出重定向到文件?

如何在Linux中将time命令的输出重定向到文件?

德玛西亚99 2019-11-25 14:41:06
关于在Linux上计时程序的一个小问题:time命令允许测量程序的执行时间:[ed@lbox200 ~]$ time sleep 1real    0m1.004suser    0m0.000ssys     0m0.004s哪个工作正常。但是,如果我尝试将输出重定向到文件,它将失败。[ed@lbox200 ~]$ time sleep 1 > time.txtreal    0m1.004suser    0m0.001ssys     0m0.004s[ed@lbox200 ~]$ cat time.txt [ed@lbox200 ~]$ 我知道还有其他一些带有选项-o的时间实现,但是我的问题是关于没有那些选项的命令。有什么建议么 ?
查看完整描述

3 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

将time您要计时的命令和命令放在一组括号中。


例如,以下时间ls将的结果ls和计时的结果写入outfile:


$ (time ls) > outfile 2>&1

或者,如果您想将命令的输出与捕获的输出分开time:


$ (time ls) > ls_results 2> time_results


查看完整回答
1 反对 回复 2019-11-25
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

尝试


{ time sleep 1 ; } 2> time.txt

将“时间”的STDERR和您的命令组合到time.txt中


或使用


{ time sleep 1 2> sleep.stderr ; } 2> time.txt

将来自“睡眠”的STDERR放入文件“ sleep.stderr”,只有来自“时间”的STDERR进入“ time.txt”


查看完整回答
反对 回复 2019-11-25
?
12345678_0001

TA贡献1802条经验 获得超5个赞

如果您关心命令的错误输出,则可以在仍使用内置时间命令的情况下像这样将它们分开。


{ time your_command 2> command.err ; } 2> time.log

要么


{ time your_command 2>1 ; } 2> time.log

如您所见,该命令的错误进入了一个文件(因为stderr用于time)。


遗憾的是,您无法将其发送到另一个句柄(如3>&2),因为该句柄将不再存在{...}


就是说,如果您可以使用GNU时间,请执行@Tim Ludwinski所说的。


\time -o time.log command


查看完整回答
反对 回复 2019-11-25
  • 3 回答
  • 0 关注
  • 1347 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信