如何在文件中打印命令到 运行 的时间?

How to print in a file the time it took a command to run?

我想在文件中打印 time.

的结果

例如time ls -lRa /在执行结束时打印时间。我想将其打印在 toto.txt

这样的文件中

我尝试了 time ls -lRa / >> toto.txt,但我认为它也打印了 ls..

的结果

有什么方法可以只打印时间并在标准输出中打印 ls 吗?

(目的是制作一个脚本,该脚本将在文件中打印如下内容:

testing ls -lRa / ...
real    1m14.999s
user    0m43.928s
sys     0m3.681s

)

是的。假设您使用的是 bash,您可以这样做:{ time ls -lRa /; } 2> toto.txt.

您还可以使用类似以下内容的方式摆脱 ls 的输出(标准输出和标准错误):

{ time ls -lRa / > /dev/null 2>&1; } 2> toto.txt

我不同意 Pablo Antonio 发布的答案,因为它将 ls -lRa 的任何错误输出重定向到文件 toto.txt。试试这个:

time (ls -lRa / > /dev/null 2>&1) > toto.txt 2>&1

您也可以编写一个脚本,创建一个文件 timePrint.sh,添加以下内容和 运行 chmod u+x timePrint.sh:

#!/bin/bash
echo "testing $* ..." > toto.txt
time ($* > /dev/null 2>&1) > toto.txt 2>&1

然后像./timePrint.sh ls -lRa /

一样使用它