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

时间:2012-06-18 11:52:24

标签: linux

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

time wget 'http://localhost:8080/upLoading.jsp' --timeout=0

并在命令行中获得结果

real    0m0.042s
user    0m0.000s
sys     0m0.000s

我尝试了以下内容:

time -a o.txt wget 'http://localhost:8080/upLoading.jsp' --timeout=0 

并收到以下错误

-a: command not found

我想将结果重定向到某个文件。我怎么能这样做?

10 个答案:

答案 0 :(得分:10)

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

/usr/bin/time -o foo.txt -a wget 'http://localhost:8080/upLoading.jsp' --timeout=0

答案 1 :(得分:6)

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

time -o o.txt -a ...

(注意你需要两者 -a和-o)。

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

/usr/bin/time

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

答案 2 :(得分:3)

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

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

   command 2>&1 outfile.txt (with bash)

   command >& outfile.txt (with t/csh)

如果您正在使用bash All about redirection,则会为您提供有关重定向的更多详细信息和控制权。

答案 3 :(得分:1)

\time 2> time.out.text command

\time -o time.out.text command

这个答案基于之前的评论。它经过测试可行。 \优于/usr/bin/的优势在于您不必知道time的安装目录。

这些答案也只捕捉时间,而不是其他输出。

答案 4 :(得分:0)

正是GNU的time将其输出写入 stderr ,如果要将其重定向到文件,可以使用time <的输出= PATH参数/ p>

请参阅此http://unixhelp.ed.ac.uk/CGI/man-cgi?time

如果要将 stdout 重定向到某个文件,可以使用> filename创建文件并填充它,或者>> filename在初始命令后追加到某个文件

如果您想自己重定向 stderr ,可以使用$ command >&2 your_stderr_output

答案 5 :(得分:0)

尝试使用/usr/bin/time,因为许多shell都有自己的time实现,这些实现可能支持或不支持与/usr/bin/time相同的标记

所以将命令更改为

  /usr/bin/time -a -o foo.txt wget ....

答案 6 :(得分:0)

你的LANG怎么样?

$ time -ao o.txt echo 1
bash: -ao: コマンドが見つかりません

real    0m0.001s
user    0m0.000s
sys     0m0.000s
$ export|grep LANG
declare -x LANG="ja_JP.utf8"

$ LANG=C time -ao o.txt echo 1
1

$ cat o.txt
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 1984maxresident)k
0inputs+0outputs (0major+158minor)pagefaults 0swaps

答案 7 :(得分:0)

尝试:

command 2> log.txt

和&#34;命令&#34;的实时输出可以在另一个控制台窗口中看到:

tail -f log.txt

答案 8 :(得分:0)

答案 9 :(得分:-1)

如果要重定向输出,可以使用>执行此操作。

例如:

time wget 'http://localhost:8080/upLoading.jsp' --timeout=0 > output.txt 2>&1

2>&1表示将STDERR重定向到同一个文件。

此命令将清除所有output.txt文件,并使用您的输出创建一个新文件。如果使用>>,它会将输出附加到任何现有output.txt文件的末尾。如果它不存在,它将创建它。