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