xref: /freebsd/bin/cat/cat.1 (revision ae77177087c655fc883075af4f425b37e032cd05)
1.\"-
2.\" Copyright (c) 1989, 1990, 1993
3.\"	The Regents of the University of California.  All rights reserved.
4.\"
5.\" This code is derived from software contributed to Berkeley by
6.\" the Institute of Electrical and Electronics Engineers, Inc.
7.\"
8.\" Redistribution and use in source and binary forms, with or without
9.\" modification, are permitted provided that the following conditions
10.\" are met:
11.\" 1. Redistributions of source code must retain the above copyright
12.\"    notice, this list of conditions and the following disclaimer.
13.\" 2. Redistributions in binary form must reproduce the above copyright
14.\"    notice, this list of conditions and the following disclaimer in the
15.\"    documentation and/or other materials provided with the distribution.
16.\" 4. Neither the name of the University nor the names of its contributors
17.\"    may be used to endorse or promote products derived from this software
18.\"    without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\"     @(#)cat.1	8.3 (Berkeley) 5/2/95
33.\" $FreeBSD$
34.\"
35.Dd March 21, 2004
36.Dt CAT 1
37.Os
38.Sh NAME
39.Nm cat
40.Nd concatenate and print files
41.Sh SYNOPSIS
42.Nm
43.Op Fl benstuv
44.Op Ar
45.Sh DESCRIPTION
46The
47.Nm
48utility reads files sequentially, writing them to the standard output.
49The
50.Ar file
51operands are processed in command-line order.
52If
53.Ar file
54is a single dash
55.Pq Sq Fl
56or absent,
57.Nm
58reads from the standard input.
59If
60.Ar file
61is a
62.Ux
63domain socket,
64.Nm
65connects to it and then reads it until
66.Dv EOF .
67This complements the
68.Ux
69domain binding capability available in
70.Xr inetd 8 .
71.Pp
72The options are as follows:
73.Bl -tag -width indent
74.It Fl b
75Number the non-blank output lines, starting at 1.
76.It Fl e
77Display non-printing characters (see the
78.Fl v
79option), and display a dollar sign
80.Pq Ql \&$
81at the end of each line.
82.It Fl n
83Number the output lines, starting at 1.
84.It Fl s
85Squeeze multiple adjacent empty lines, causing the output to be
86single spaced.
87.It Fl t
88Display non-printing characters (see the
89.Fl v
90option), and display tab characters as
91.Ql ^I .
92.It Fl u
93Disable output buffering.
94.It Fl v
95Display non-printing characters so they are visible.
96Control characters print as
97.Ql ^X
98for control-X; the delete
99character (octal 0177) prints as
100.Ql ^? .
101.Pf Non- Tn ASCII
102characters (with the high bit set) are printed as
103.Ql M-
104(for meta) followed by the character for the low 7 bits.
105.El
106.Sh EXIT STATUS
107.Ex -std
108.Sh EXAMPLES
109The command:
110.Pp
111.Dl "cat file1"
112.Pp
113will print the contents of
114.Pa file1
115to the standard output.
116.Pp
117The command:
118.Pp
119.Dl "cat file1 file2 > file3"
120.Pp
121will sequentially print the contents of
122.Pa file1
123and
124.Pa file2
125to the file
126.Pa file3 ,
127truncating
128.Pa file3
129if it already exists.
130See the manual page for your shell (i.e.,
131.Xr sh 1 )
132for more information on redirection.
133.Pp
134The command:
135.Pp
136.Dl "cat file1 - file2 - file3"
137.Pp
138will print the contents of
139.Pa file1 ,
140print data it receives from the standard input until it receives an
141.Dv EOF
142.Pq Sq ^D
143character, print the contents of
144.Pa file2 ,
145read and output contents of the standard input again, then finally output
146the contents of
147.Pa file3 .
148Note that if the standard input referred to a file, the second dash
149on the command-line would have no effect, since the entire contents of the file
150would have already been read and printed by
151.Nm
152when it encountered the first
153.Sq Fl
154operand.
155.Sh SEE ALSO
156.Xr head 1 ,
157.Xr more 1 ,
158.Xr pr 1 ,
159.Xr sh 1 ,
160.Xr tail 1 ,
161.Xr vis 1 ,
162.Xr zcat 1 ,
163.Xr setbuf 3
164.Rs
165.%A Rob Pike
166.%T "UNIX Style, or cat -v Considered Harmful"
167.%J "USENIX Summer Conference Proceedings"
168.%D 1983
169.Re
170.Sh STANDARDS
171The
172.Nm
173utility is compliant with the
174.St -p1003.2-92
175specification.
176.Pp
177The flags
178.Op Fl benstv
179are extensions to the specification.
180.Sh HISTORY
181A
182.Nm
183utility appeared in
184.At v1 .
185.An Dennis Ritchie
186designed and wrote the first man page.
187It appears to have been
188.Xr cat 1 .
189.Sh BUGS
190Because of the shell language mechanism used to perform output
191redirection, the command
192.Dq Li cat file1 file2 > file1
193will cause the original data in
194.Pa file1
195to be destroyed!
196.Pp
197The
198.Nm
199utility does not recognize multibyte characters when the
200.Fl t
201or
202.Fl v
203option is in effect.
204