time
time
outputs the runtime of a program that is given as an argument.
$ time cd
real 0m0.008s
user 0m0.008s
sys 0m0.000s
real: refers to the amount of time spent in the user program called.
user: refers to the amount of time spent in the process called.
sys: refers to the amount of time spent in the kernel during the call.
Useful Options / Examples
There are two time
commands available to most terminals. There is the time
that is a shell built-in command and there is a time
that is a command similar to ls
. You must specify the path to the non shell built-in command because otherwise the built-in time
command takes precedence. They work identically when called with no arguments, but you can call the non-built-in time command with some additional flags that offer more functionality. The below examples use the /usr/bin/time
command (the non built-in command).
Example command
time -o [FILE] [COMMAND]
time -o
can be used to put the output of time into a file. This method includes extra information that is not part of the default time. It has cpu usage, inputs and outputs statisics as well. Another thing to note is that the -o command can only be used when using the absolute path of the time command on some installs. Be careful as this command overwrites the contents of FILE.
$ /usr/bin/time -o myfile.txt sleep 4
myfile.txt:
0.00user 0.00system 0:04.00elapsed 0%CPU (0avgtext+0avgdata 1788maxresident)k
0inputs+0outputs (0major+74minor)pagefaults 0swaps
Example command
time -o [FILE] -a [COMMAND]
time -o -a
allows you to append the same information as time -o into a file instead of overwriting it.
$ /usr/bin/time -o myfile.txt -a sleep 8
myfile.txt:
0.00user 0.00system 0:00.04elapsed 0%CPU (0avgtext+0avgdata 2056maxresident)k
0inputs+0outputs (0major+82minor)pagefaults 0swaps
0.00user 0.00system 0:08.00elapsed 0%CPU (0avgtext+0avgdata 1848maxresident)k
0inputs+0outputs (0major+74minor)pagefaults 0swaps