bash - 如何将time命令的输出重定向到Linux中的文件?
关于Linux上的计时程序的一个小问题:时间命令允许衡量程序的执行时间:
[ed@lbox200 ~]$ time sleep 1
real 0m1.004s
user 0m0.000s
sys 0m0.004s
哪个工作正常。 但是如果我尝试将输出重定向到文件,它就会失败。
[ed@lbox200 ~]$ time sleep 1 > time.txt
real 0m1.004s
user 0m0.001s
sys 0m0.004s
[ed@lbox200 ~]$ cat time.txt
[ed@lbox200 ~]$
我知道还有其他的时间实现,使用-o选项来编写文件但是我的问题是关于没有这些选项的命令。
有什么建议 ?
11个解决方案
208 votes
尝试
{ time sleep 1 ; } 2> time.txt
它将“time”的STDERR和你的命令结合到time.txt中
或者使用
{ time sleep 1 2> sleep.stderr ; } 2> time.txt
它将STDERR从“sleep”放入文件“sleep.stderr”,只有“time”的STDERR进入“time.txt”
January answered 2019-04-22T03:15:04Z
33 votes
包装time以及您在一组括号中计时的命令。
例如,以下时间time并将结果写入ls并将时序结果写入
在Linux中,time命令用于测量程序执行时间。当尝试将time命令的输出重定向到文件时,直接使用`>`会导致输出丢失。解决方法包括使用花括号包裹time命令和目标命令,如`{ time sleep 1 ; } 2> time.txt`,或者使用GNU time的`-o`选项,例如`/usr/bin/time -o time.txt sleep 1`。还可以通过组合重定向来分别保存命令的输出和time的输出。
最低0.47元/天 解锁文章
1231

被折叠的 条评论
为什么被折叠?



