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