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