如何redirect“时间”命令的输出?
我试图redirect时间命令的输出,但我不能:
$time ls > filename real 0m0.000s user 0m0.000s sys 0m0.000s  在文件中,我可以看到ls命令的输出,而不是time 。 请解释,为什么我不能和如何做到这一点。 
你可以redirect使用的时间输出,
 (time ls) &> file 
因为你需要(时间ls)作为一个单一的命令,所以你可以使用大括号。
无需启动子shell。 使用代码块也可以。
 { time ls; } 2> out.txt 
要么
 { time ls > /dev/null 2>&1 ; } 2> out.txt 
命令时间将其输出发送到STDERR(而不是STDOUT)。 这是因为正常执行的命令(在这种情况下是ls)会输出到STDOUT。
如果要捕获时间的输出,请键入:
 (time ls) 2> filename 
这只捕获时间的输出,但是ls的输出正常于控制台。 如果要在一个文件中捕获两个文件,请键入:
 (time ls) &> filename 
2>redirectSTDERR,&>redirect两者。
 时间是shell内build的,我不确定是否有方法redirect它。 但是,您可以使用/usr/bin/time ,它可以接受任何输出redirect。 
 如果你不想混合time和命令的输出。 有了GNU时间,你可以使用-o file如: 
 /usr/bin/time -o tim grep -ek /tmp 1>out 2>err 
 而tim是输出的时间, out和err是stdout和stderr从grep 。