我正在运行以下命令(在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
我想要将结果redirect到某个文件。 我怎样才能做到这一点?
您可以使用>
字符将任何命令的stdout
输出指向文件。 要将输出附加到文件,请使用>>
请注意,除非明确完成,否则输出到stderr
仍将转到控制台。 将stderr
和stdout
指向相同的输出流
command 2>&1 outfile.txt (with bash)
要么
command >& outfile.txt (with t/csh)
如果你正在使用bash
所有关于重定向将给你更多的细节和控制重定向。
-a只能被时间二进制(/ usr / bin / time)所理解,当使用的时候你使用的是bash内置版本,它不处理-a选项,因此试图把它作为命令运行。
/usr/bin/time -o foo.txt -a wget 'http://localhost:8080/upLoading.jsp' --timeout=0
检查man time
,我猜你需要的是
time -o o.txt -a ...
(注意你需要-a和-o)。
[编辑:]如果你是在bash,你还必须小心写
/usr/bin/time
(查看manpage的解释)
\time 2> time.out.text command \time -o time.out.text command
这个答案基于之前的评论。 它被测试它的工作。 \
over /usr/bin/
的优点是你不必知道time
的安装目录。
这些答案也只是捕捉时间,而不是其他的输出。
从GNU到GNU的time
恰好是输出到stderr ,如果你想把它重定向到文件,你可以使用–output = PATH参数的time
见http://unixhelp.ed.ac.uk/CGI/man-cgi?time
如果你想将stdout重定向到某个文件,你可以使用> filename
来创建文件并填充它或者>> filename
来在最初的命令之后附加到某个文件。
如果你想自己重定向stderr ,你可以使用$ command >&2 your_stderr_output
尝试使用/usr/bin/time
因为许多shell有自己的time
执行,可能会或可能不支持/usr/bin/time
所以改变你的命令
/usr/bin/time -a -o foo.txt wget ....
你的郎怎么样?
$ 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
尝试:
command 2> log.txt
并且可以在另一个控制台窗口中看到“命令”的实时输出:
tail -f log.txt
如果要重定向输出,可以使用>
来完成。
例如:
time wget 'http://localhost:8080/upLoading.jsp' --timeout=0 > output.txt 2>&1
2>&1
表示将STDERR重定向到同一个文件。
这个命令将擦除所有的output.txt文件,并用你的输出创建一个新的文件。 如果使用>>
,则会将输出追加到任何现有的output.txt文件的末尾。 如果它不存在,它将创建它。