如何将linux time命令的结果重定向到某个文件

Jul*_*ias 10 linux

我正在运行以下命令(在Ubuntu上)

time wget 'http://localhost:8080/upLoading.jsp' --timeout=0
Run Code Online (Sandbox Code Playgroud)

并在命令行中获得结果

real    0m0.042s
user    0m0.000s
sys     0m0.000s
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方法:

time -a o.txt wget 'http://localhost:8080/upLoading.jsp' --timeout=0 
Run Code Online (Sandbox Code Playgroud)

并得到以下错误

-a: command not found
Run Code Online (Sandbox Code Playgroud)

我想将结果重定向到某个文件.我怎样才能做到这一点?

Ada*_*dam 10

-a只能通过时间二进制(/ usr/bin/time)来理解,当只是使用时间时你正在使用不处理-a选项的bash内置版本,因此尝试将其作为命令运行.

/usr/bin/time -o foo.txt -a wget 'http://localhost:8080/upLoading.jsp' --timeout=0
Run Code Online (Sandbox Code Playgroud)

  • 我相信这实际上是正确的答案.调用时间时,调用/ usr/bin/time而不是使用不支持高级选项的shell内置函数. (2认同)

cla*_*asz 6

检查man time,我想你需要的是

time -o o.txt -a ...
Run Code Online (Sandbox Code Playgroud)

(请注意,你需要两个 -a和-o).

[编辑:]如果你在bash,你也必须小心写

/usr/bin/time
Run Code Online (Sandbox Code Playgroud)

(查看联机帮助页以获得解释)


Lev*_*von 3

您可以stdout使用该字符将任何命令的输出定向到文件>。要将输出附加到文件中,请使用>>

请注意,除非明确完成,否则输出stderr仍将转到控制台。要将 和 定向 同一输出流,请stderr使用stdout

   command 2>&1 outfile.txt (with bash)
Run Code Online (Sandbox Code Playgroud)

或者

   command >& outfile.txt (with t/csh)
Run Code Online (Sandbox Code Playgroud)

如果您正在使用bash “关于重定向的所有内容”,将为您提供有关重定向的更多详细信息和控制。