xref: /openbsd/usr.bin/uuencode/uuencode.1 (revision cca36db2)
1.\"	$OpenBSD: uuencode.1,v 1.23 2010/09/29 07:44:57 jmc Exp $
2.\"	$FreeBSD: uuencode.1,v 1.26 2003/03/18 14:24:47 fanf Exp $
3.\"
4.\" Copyright (c) 1980, 1990, 1993
5.\"	The Regents of the University of California.  All rights reserved.
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. Neither the name of the University nor the names of its contributors
16.\"    may be used to endorse or promote products derived from this software
17.\"    without specific prior written permission.
18.\"
19.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29.\" SUCH DAMAGE.
30.\"
31.\"     @(#)uuencode.1	8.1 (Berkeley) 6/6/93
32.\" $FreeBSD$
33.\"
34.Dd $Mdocdate: September 29 2010 $
35.Dt UUENCODE 1
36.Os
37.Sh NAME
38.Nm uuencode ,
39.Nm uudecode ,
40.Nm b64encode ,
41.Nm b64decode
42.Nd encode/decode a binary file
43.Sh SYNOPSIS
44.Nm uuencode
45.Op Fl m
46.Op Fl o Ar output_file
47.Op Ar file
48.Ar name
49.Nm uudecode
50.Op Fl cimprs
51.Op Ar
52.Nm uudecode
53.Op Fl i
54.Fl o Ar output_file
55.Op Ar file
56.Pp
57.Nm b64encode
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 o Ar output_file
126Output to
127.Ar output_file
128instead of standard output.
129.El
130.Pp
131The options for
132.Nm uudecode
133are as follows:
134.Bl -tag -width ident
135.It Fl c
136Decode more than one uuencoded file from
137.Ar file
138if possible.
139.It Fl i
140Do not overwrite files.
141.It Fl m
142When used with the
143.Fl r
144flag, decode Base64 input instead of traditional
145.Nm
146input.
147Without
148.Fl r
149it has no effect.
150.It Fl o Ar output_file
151Output to
152.Ar output_file
153instead of any pathname contained in the input data.
154.It Fl p
155Decode
156.Ar file
157and write output to standard output.
158.It Fl r
159Decode raw (or broken) input which is missing the initial and
160possibly the final framing lines.
161The input is assumed to be in the traditional
162.Nm
163encoding, but if the
164.Fl m
165flag is used, or if the utility is invoked as
166.Nm b64decode ,
167then the input is assumed to be in Base64 format.
168.It Fl s
169Do not strip output pathname to base filename.
170By default
171.Nm uudecode
172deletes any prefix ending with the last slash '/' for security
173reasons.
174.El
175.Sh EXIT STATUS
176The
177.Nm uuencode
178and
179.Nm uudecode
180utilities exit 0 on success,
181and \*(Gt0 if an error occurs.
182.Sh EXAMPLES
183The following example packages up a source tree, compresses it,
184uuencodes it and mails it to a user on another system.
185When
186.Nm uudecode
187is run on the target system, the file
188.Pa src_tree.tar.Z
189will be created which may then be uncompressed and extracted
190into the original tree.
191.Bd -literal -offset indent
192$ tar cf - src_tree | compress | \e
193uuencode src_tree.tar.Z | mail user@example.com
194.Ed
195.Pp
196The following example unpacks all uuencoded
197files from your mailbox into your current working directory.
198.Bd -literal -offset indent
199$ uudecode -c \*(Lt $MAIL
200.Ed
201.Pp
202The following example extracts a compressed tar
203archive from your mailbox
204.Bd -literal -offset indent
205$ uudecode -o /dev/stdout \*(Lt $MAIL | zcat | tar xfv -
206.Ed
207.Sh SEE ALSO
208.Xr basename 1 ,
209.Xr compress 1 ,
210.Xr mail 1 ,
211.Xr uuencode 5
212.Sh STANDARDS
213The
214.Nm uudecode
215and
216.Nm uuencode
217utilities are compliant with the
218.St -p1003.1-2008
219specification.
220.Pp
221The flags
222.Op Fl ciprs
223are extensions to that specification.
224.Pp
225The use of the
226.Fl o
227flag for
228.Nm uuencode
229and the
230.Fl m
231flag for
232.Nm uudecode
233are also extensions to that specification.
234.Sh HISTORY
235The
236.Nm uudecode
237and
238.Nm
239utilities appeared in
240.Bx 4.0 .
241.Sh BUGS
242Files encoded using the traditional algorithm are expanded by 35%
243(3 bytes become 4 plus control information).
244