xref: /freebsd/usr.bin/tail/tail.1 (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1.\" Copyright (c) 1980, 1990, 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" This code is derived from software contributed to Berkeley by
5.\" the Institute of Electrical and Electronics Engineers, Inc.
6.\"
7.\" Redistribution and use in source and binary forms, with or without
8.\" modification, are permitted provided that the following conditions
9.\" are met:
10.\" 1. Redistributions of source code must retain the above copyright
11.\"    notice, this list of conditions and the following disclaimer.
12.\" 2. Redistributions in binary form must reproduce the above copyright
13.\"    notice, this list of conditions and the following disclaimer in the
14.\"    documentation and/or other materials provided with the distribution.
15.\" 3. Neither the name of the University nor the names of its contributors
16.\"    may be used to endorse or promote products derived from this software
17.\"    without specific prior written permission.
18.\"
19.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29.\" SUCH DAMAGE.
30.\"
31.\"	@(#)tail.1	8.1 (Berkeley) 6/6/93
32.\" $FreeBSD$
33.\"
34.Dd March 22, 2020
35.Dt TAIL 1
36.Os
37.Sh NAME
38.Nm tail
39.Nd display the last part of a file
40.Sh SYNOPSIS
41.Nm
42.Op Fl F | f | r
43.Op Fl q
44.Oo
45.Fl b Ar number | Fl c Ar number | Fl n Ar number
46.Oc
47.Op Ar
48.Sh DESCRIPTION
49The
50.Nm
51utility displays the contents of
52.Ar file
53or, by default, its standard input, to the standard output.
54.Pp
55The display begins at a byte, line or 512-byte block location in the
56input.
57Numbers having a leading plus
58.Pq Ql +
59sign are relative to the beginning
60of the input, for example,
61.Dq Li "-c +2"
62starts the display at the second
63byte of the input.
64Numbers having a leading minus
65.Pq Ql -
66sign or no explicit sign are
67relative to the end of the input, for example,
68.Dq Li "-n 2"
69displays the last two lines of the input.
70The default starting location is
71.Dq Li "-n 10" ,
72or the last 10 lines of the input.
73.Pp
74The options are as follows:
75.Bl -tag -width indent
76.It Fl b Ar number , Fl -blocks Ns = Ns Ar number
77The location is
78.Ar number
79512-byte blocks.
80.It Fl c Ar number , Fl -bytes Ns = Ns Ar number
81The location is
82.Ar number
83bytes.
84.It Fl f
85The
86.Fl f
87option causes
88.Nm
89to not stop when end of file is reached, but rather to wait for additional
90data to be appended to the input.
91The
92.Fl f
93option is ignored if the standard input is a pipe, but not if it is a FIFO.
94.It Fl F
95The
96.Fl F
97option implies the
98.Fl f
99option, but
100.Nm
101will also check to see if the file being followed has been renamed or rotated.
102The file is closed and reopened when
103.Nm
104detects that the filename being read from has a new inode number.
105.Pp
106If the file being followed does not (yet) exist or if it is removed, tail
107will keep looking and will display the file from the beginning if and when
108it is created.
109.Pp
110The
111.Fl F
112option is the same as the
113.Fl f
114option if reading from standard input rather than a file.
115.It Fl n Ar number , Fl -lines Ns = Ns Ar number
116The location is
117.Ar number
118lines.
119.It Fl q
120Suppresses printing of headers when multiple files are being examined.
121.It Fl r
122The
123.Fl r
124option causes the input to be displayed in reverse order, by line.
125Additionally, this option changes the meaning of the
126.Fl b , c
127and
128.Fl n
129options.
130When the
131.Fl r
132option is specified, these options specify the number of bytes, lines
133or 512-byte blocks to display, instead of the bytes, lines or blocks
134from the beginning or end of the input from which to begin the display.
135The default for the
136.Fl r
137option is to display all of the input.
138.El
139.Pp
140If more than a single file is specified, each file is preceded by a
141header consisting of the string
142.Dq Li "==> " Ns Ar XXX Ns Li " <=="
143where
144.Ar XXX
145is the name of the file unless
146.Fl q
147flag is specified.
148.Sh EXIT STATUS
149.Ex -std
150.Sh EXAMPLES
151To display the last 500 lines of the file
152.Ar foo :
153.Pp
154.Dl $ tail -n 500 foo
155.Pp
156Keep
157.Pa /var/log/messages
158open, displaying to the standard output anything appended to the file:
159.Pp
160.Dl $ tail -F /var/log/messages
161.Sh SEE ALSO
162.Xr cat 1 ,
163.Xr head 1 ,
164.Xr sed 1
165.Sh STANDARDS
166The
167.Nm
168utility is expected to be a superset of the
169.St -p1003.2-92
170specification.
171In particular, the
172.Fl F ,
173.Fl b
174and
175.Fl r
176options are extensions to that standard.
177.Pp
178The historic command line syntax of
179.Nm
180is supported by this implementation.
181The only difference between this implementation and historic versions
182of
183.Nm ,
184once the command line syntax translation has been done, is that the
185.Fl b ,
186.Fl c
187and
188.Fl n
189options modify the
190.Fl r
191option, i.e.,
192.Dq Li "-r -c 4"
193displays the last 4 characters of the last line
194of the input, while the historic tail (using the historic syntax
195.Dq Li -4cr )
196would ignore the
197.Fl c
198option and display the last 4 lines of the input.
199.Sh HISTORY
200A
201.Nm
202command appeared in PWB UNIX.
203