将进程重定向到文件并将其时间重定向到文件

时间:2013-10-15 17:34:30

标签: bash redirect

我希望将进程的时间重定向到文件,然后进程本身会重定向到文件。以下是我尝试过的内容:

time &> ltime.txt echo | ls -l > ls-l.txt

创建了两个文件(ltime.txtls-l.txt),但ltime.txt为空。

time仍然输出到屏幕, 这在我的情况下很好, 但由于&>

,我预计会这样做
    real    0m0.034s
    user    0m0.000s
    sys     0m0.004s

(我所知道的全部来自http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

也许你被内置于shell的time所困扰?试试这个:

/usr/bin/time ls -l > ls-l.txt 2> ltime.txt

来自man time

   Users of the bash shell need to use an explicit path in order to run
   the external time command and not the shell builtin variant.

[已更新以添加]

显然time的位置并非完全标准。对于一次性使用(以及一般信息)which time将告诉您它在哪里。对于便携式脚本,您可以说command time ...。 (command是一个内置的shell,它告诉shell忽略内置函数。)

答案 1 :(得分:1)

尝试

{ time ls -l > ls-l.txt ; }  &> ltime.txt 

即使使用内置函数,花括号也会捕获输出。