如何在文件中打印命令到 运行 的时间?
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 /
一样使用它
我想在文件中打印 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 /