12

我正在运行以下命令(在 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

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

4

10 回答 10

12

-a 仅由 time 二进制文件 (/usr/bin/time) 理解,当仅使用 time 时,您使用的是不处理 -a 选项的 bash 内置版本,因此尝试将其作为命令运行.

/usr/bin/time -o foo.txt -a wget 'http://localhost:8080/upLoading.jsp' --timeout=0
于 2012-06-18T12:01:45.140 回答
7

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

time -o o.txt -a ...

(注意你需要-a-o)。

[编辑:] 如果你在 bash,你还必须注意写

/usr/bin/time

(检查手册页的解释)

于 2012-06-18T11:56:18.727 回答
3

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

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

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

或者

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

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

于 2012-06-18T11:55:53.720 回答
1
\time 2> time.out.text command

\time -o time.out.text command

该答案基于先前的评论。它经过测试它可以工作。\over的好处/usr/bin/是你不必知道time.

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

于 2012-06-18T12:17:33.147 回答
0

正是time来自 GNU 将其输出写入stderr,如果要将其重定向到文件,可以使用 --output=PATH 参数time

看到这个http://unixhelp.ed.ac.uk/CGI/man-cgi?time

如果您想将标准输出重定向到某个文件,您可以使用> filename创建文件并填充它或>> filename在初始命令之后附加到某个文件。

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

于 2012-06-18T11:55:36.620 回答
0

尝试使用/usr/bin/time,因为许多 shell 都有自己的实现,time它们可能支持也可能不支持相同的标志/usr/bin/time

所以将您的命令更改为

  /usr/bin/time -a -o foo.txt wget ....
于 2012-06-18T12:10:23.453 回答
0

尝试:

command 2> log.txt

并且“命令”的实时输出可以在另一个控制台窗口中看到:

tail -f log.txt
于 2016-03-07T18:21:46.573 回答
0

这对我有用:

( time command ) |& tee output.txt

https://unix.stackexchange.com/questions/115980/how-can-i-redirect-time-output-and-command-output-to-the-same-pipe

于 2018-01-23T15:45:27.530 回答
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
于 2016-01-31T10:09:19.137 回答
-1

>如果你想重定向输出,你可以这样做。

例如:

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

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

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

于 2012-06-18T11:56:40.817 回答