xref: /freebsd/usr.bin/time/time.1 (revision f7c32ed617858bcd22f8d1b03199099d50125721)
1.\" Copyright (c) 1980, 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. Neither the name of the University nor the names of its contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"    without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.\"     @(#)time.1	8.1 (Berkeley) 6/6/93
29.\" $FreeBSD$
30.\"
31.Dd July 7, 2020
32.Dt TIME 1
33.Os
34.Sh NAME
35.Nm time
36.Nd time command execution
37.Sh SYNOPSIS
38.Nm
39.Op Fl al
40.Op Fl h | Fl p
41.Op Fl o Ar file
42.Ar utility Op Ar argument ...
43.Sh DESCRIPTION
44The
45.Nm
46utility
47executes and
48times the specified
49.Ar utility .
50After the
51.Ar utility
52finishes,
53.Nm
54writes to the standard error stream,
55(in seconds):
56the total time elapsed,
57the time used to execute the
58.Ar utility
59process and the time consumed by system overhead.
60.Pp
61The following options are available:
62.Bl -tag -width indent
63.It Fl a
64If the
65.Fl o
66flag is used, append to the specified file rather than overwriting
67it.
68Otherwise, this option has no effect.
69.It Fl h
70Print times in a human friendly format.
71Times are printed in minutes, hours,
72etc.\& as appropriate.
73.It Fl l
74The contents of the
75.Em rusage
76structure are printed as well.
77.It Fl o Ar file
78Write the output to
79.Ar file
80instead of stderr.
81If
82.Ar file
83exists and the
84.Fl a
85flag is not specified, the file will be overwritten.
86.It Fl p
87Makes
88.Nm
89output POSIX.2 compliant (each time is printed on its own line).
90.El
91.Pp
92Some shells may provide a builtin
93.Nm
94command which is similar or identical to this utility.
95Consult the
96.Xr builtin 1
97manual page.
98.Pp
99If
100.Nm
101receives a
102.Dv SIGINFO
103(see the status argument for
104.Xr stty 1 )
105signal, the current time the given command is running will be written to the
106standard output.
107.Sh ENVIRONMENT
108The
109.Ev PATH
110environment variable is used to locate the requested
111.Ar utility
112if the name contains no
113.Ql /
114characters.
115.Sh EXIT STATUS
116If
117.Ar utility
118could be timed successfully, its exit status is returned.
119If
120.Ar utility
121terminated abnormally, a warning message is output to stderr.
122If the
123.Ar utility
124was found but could not be run, the exit status is 126.
125If no
126.Ar utility
127could be found at all, the exit status is 127.
128If
129.Nm
130encounters any other error, the exit status is between 1 and 125
131included.
132.Sh EXAMPLES
133Time the execution of
134.Xr ls 1
135on an empty directory:
136.Bd -literal -offset indent
137$ /usr/bin/time ls
138        0.00 real         0.00 user         0.00 sys
139.Ed
140.Pp
141Time the execution of the
142.Xr cp 1
143command and store the result in the
144.Pa times.txt
145file.
146Then execute the command again to make a new copy and add the result to the same
147file:
148.Bd -literal -offset indent
149$ /usr/bin/time -o times.txt cp FreeBSD-12.1-RELEASE-amd64-bootonly.iso copy1.iso
150$ /usr/bin/time -a -o times.txt cp FreeBSD-12.1-RELEASE-amd64-bootonly.iso copy2.iso
151.Ed
152.Pp
153The
154.Pa times.txt
155file will contain the times of both commands:
156.Bd -literal -offset indent
157$ cat times.txt
158        0.68 real         0.00 user         0.22 sys
159        0.67 real         0.00 user         0.21 sys
160.Ed
161.Pp
162Time the
163.Xr sleep 1
164command and show the results in a human friendly format.
165Show the contents of the
166.Em rusage
167structure too:
168.Bd -literal -offset indent
169$ /usr/bin/time -l -h -p sleep 5
170real 5.01
171user 0.00
172sys 0.00
173         0  maximum resident set size
174         0  average shared memory size
175         0  average unshared data size
176         0  average unshared stack size
177        80  page reclaims
178         0  page faults
179         0  swaps
180         1  block input operations
181         0  block output operations
182         0  messages sent
183         0  messages received
184         0  signals received
185         3  voluntary context switches
186         0  involuntary context switches
187.Ed
188.Sh SEE ALSO
189.Xr builtin 1 ,
190.Xr csh 1 ,
191.Xr getrusage 2 ,
192.Xr wait 2
193.Sh STANDARDS
194The
195.Nm
196utility is expected to conform to ISO/IEC 9945-2:1993 (``POSIX'').
197.Sh HISTORY
198A
199.Nm
200utility appeared in
201.At v3 .
202