将 time 命令的输出重定向到文件



我刚刚发现,以下内容在我的 Ubuntu 16.04 上无法正常工作:

$ time >file 2>&1
real    0m0.000s
user    0m0.000s
sys     0m0.000s
$ cat file
$

输出转到终端,文件为空,尽管使用 2>&1(描述符 2 重定向到描述符 1 的地址(STDERR 应该去 STDOUT 去的地方。我一直在寻找有关此主题的现有主题,并且在描述更复杂的问题时,通常会提到像这里这样简单的问题,它做得很好。为什么会这样行为不端?

UPD:得到了答案,时间是 BASH 中的内置命令。也许有人对完全相同的事情感到困惑(可能是那些用Kernighan和Pike的旧书学习Unix的人(。

您正在使用bash,它确实有一个名为time的内置关键字,其功能类似。

您可以像/usr/bin/time -p [command] >file 2>&1一样访问已安装的二进制文件(如果有(,而不是使用内置的time(bash( 命令。这将完全符合您的期望。 请注意-p选项,这是您在上面看到的"便携式输出格式"所必需的。

另外请看一下手册页:man time

最新更新