Merge branch 'vendor/GCC47'
[dragonfly.git] / usr.bin / uuencode / uuencode.1
1 .\" Copyright (c) 1980, 1990, 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 .\"     @(#)uuencode.1  8.1 (Berkeley) 6/6/93
29 .\" $FreeBSD: src/usr.bin/uuencode/uuencode.1,v 1.9.2.9 2003/04/07 20:11:46 fanf Exp $
30 .\" $DragonFly: src/usr.bin/uuencode/uuencode.1,v 1.3 2006/02/17 19:39:14 swildner Exp $
31 .\"
32 .Dd January 27, 2002
33 .Dt UUENCODE 1
34 .Os
35 .Sh NAME
36 .Nm uuencode ,
37 .Nm uudecode ,
38 .Nm b64encode ,
39 .Nm b64decode
40 .Nd encode/decode a binary file
41 .Sh SYNOPSIS
42 .Nm
43 .Op Fl m
44 .Op Fl o Ar output_file
45 .Op Ar file
46 .Ar name
47 .Nm uudecode
48 .Op Fl cimprs
49 .Op Ar
50 .Nm uudecode
51 .Op Fl i
52 .Fl o Ar output_file
53 .Nm b64encode
54 .Op Fl o Ar output_file
55 .Op Ar file
56 .Ar name
57 .Nm b64decode
58 .Op Fl cimprs
59 .Op Ar
60 .Nm b64decode
61 .Op Fl i
62 .Fl o Ar output_file
63 .Op Ar file
64 .Sh DESCRIPTION
65 The
66 .Nm
67 and
68 .Nm uudecode
69 utilities are used to transmit binary files over transmission mediums
70 that do not support other than simple
71 .Tn ASCII
72 data.
73 The
74 .Nm b64encode
75 utility is synonymous with
76 .Nm
77 with the
78 .Fl m
79 flag specified.
80 The
81 .Nm b64decode
82 utility is synonymous with
83 .Nm uudecode
84 with the
85 .Fl m
86 flag specified.
87 .Pp
88 The
89 .Nm
90 utility reads
91 .Ar file
92 (or by default the standard input) and writes an encoded version
93 to the standard output, or
94 .Ar output_file
95 if one has been specified.
96 The encoding uses only printing
97 .Tn ASCII
98 characters and includes the
99 mode of the file and the operand
100 .Ar name
101 for use by
102 .Nm uudecode .
103 .Pp
104 The
105 .Nm uudecode
106 utility transforms
107 .Em uuencoded
108 files (or by default, the standard input) into the original form.
109 The resulting file is named either
110 .Ar name
111 or (depending on options passed to
112 .Nm uudecode )
113 .Ar output_file
114 and will have the mode of the original file except that setuid
115 and execute bits are not retained.
116 The
117 .Nm uudecode
118 utility ignores any leading and trailing lines.
119 .Pp
120 The following options are available for
121 .Nm :
122 .Bl -tag -width ident
123 .It Fl m
124 Use the Base64 method of encoding, rather than the traditional
125 .Nm
126 algorithm.
127 .It Fl o Ar output_file
128 Output to
129 .Ar output_file
130 instead of standard output.
131 .El
132 .Pp
133 The following options are available for
134 .Nm uudecode :
135 .Bl -tag -width ident
136 .It Fl c
137 Decode more than one uuencoded file from
138 .Ar file
139 if possible.
140 .It Fl i
141 Do not overwrite files.
142 .It Fl m
143 When used with the
144 .Fl r
145 flag, decode Base64 input instead of traditional
146 .Nm
147 input.
148 Without
149 .Fl r
150 it has no effect.
151 .It Fl o Ar output_file
152 Output to
153 .Ar output_file
154 instead of any pathname contained in the input data.
155 .It Fl p
156 Decode
157 .Ar file
158 and write output to standard output.
159 .It Fl r
160 Decode raw (or broken) input, which is missing the initial and
161 possibly the final framing lines.
162 The input is assumed to be in the traditional
163 .Nm
164 encoding, but if the
165 .Fl m
166 flag is used, or if the utility is invoked as
167 .Nm b64decode ,
168 then the input is assumed to be in Base64 format.
169 .It Fl s
170 Do not strip output pathname to base filename.
171 By default
172 .Nm uudecode
173 deletes any prefix ending with the last slash '/' for security
174 reasons.
175 .El
176 .Sh EXAMPLES
177 The following example packages up a source tree, compresses it,
178 uuencodes it and mails it to a user on another system.
179 When
180 .Nm uudecode
181 is run on the target system, the file ``src_tree.tar.Z'' will be
182 created which may then be uncompressed and extracted into the original
183 tree.
184 .Pp
185 .Bd -literal -offset indent -compact
186 tar cf \- src_tree \&| compress \&|
187 uuencode src_tree.tar.Z \&| mail sys1!sys2!user
188 .Ed
189 .Pp
190 The following example unpacks all uuencoded
191 files from your mailbox into your current working directory.
192 .Pp
193 .Bd -literal -offset indent -compact
194 uudecode -c < $MAIL
195 .Ed
196 .Pp
197 The following example extracts a compressed tar
198 archive from your mailbox
199 .Pp
200 .Bd -literal -offset indent -compact
201 uudecode -o /dev/stdout < $MAIL | zcat | tar xfv -
202 .Ed
203 .Sh SEE ALSO
204 .Xr basename 1 ,
205 .Xr compress 1 ,
206 .Xr mail 1 ,
207 .Xr uucp 1 ,
208 .Xr uuencode 5
209 .Sh HISTORY
210 The
211 .Nm uudecode
212 and
213 .Nm
214 utilities appeared in
215 .Bx 4.0 .
216 .Sh BUGS
217 Files encoded using the traditional algorithm are expanded by 35% (3
218 bytes become 4 plus control information).