xref: /openbsd/usr.bin/uuencode/uuencode.1 (revision 73471bf0)
1.\"	$OpenBSD: uuencode.1,v 1.25 2015/09/09 16:00:22 sobrado 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 9 2015 $
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 Ds
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 Ds
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
176.Ex -std uuencode uudecode b64encode b64decode
177.Sh EXAMPLES
178The following example packages up a source tree, compresses it,
179uuencodes it and mails it to a user on another system.
180When
181.Nm uudecode
182is run on the target system, the file
183.Pa src_tree.tar.Z
184will be created which may then be uncompressed and extracted
185into the original tree.
186.Bd -literal -offset indent
187$ tar cf - src_tree | compress | \e
188uuencode src_tree.tar.Z | mail user@example.com
189.Ed
190.Pp
191The following example unpacks all uuencoded
192files from your mailbox into your current working directory.
193.Bd -literal -offset indent
194$ uudecode -c < $MAIL
195.Ed
196.Pp
197The following example extracts a compressed tar
198archive from your mailbox
199.Bd -literal -offset indent
200$ uudecode -o /dev/stdout < $MAIL | zcat | tar xfv -
201.Ed
202.Sh SEE ALSO
203.Xr basename 1 ,
204.Xr compress 1 ,
205.Xr mail 1 ,
206.Xr uuencode 5
207.Sh STANDARDS
208The
209.Nm uudecode
210and
211.Nm uuencode
212utilities are compliant with the
213.St -p1003.1-2008
214specification.
215.Pp
216The flags
217.Op Fl ciprs
218are extensions to that specification.
219.Pp
220The use of the
221.Fl o
222flag for
223.Nm uuencode
224and the
225.Fl m
226flag for
227.Nm uudecode
228are also extensions to that specification.
229.Sh HISTORY
230The
231.Nm uudecode
232and
233.Nm
234utilities appeared in
235.Bx 4.0 .
236.Sh BUGS
237Files encoded using the traditional algorithm are expanded by 35%
238(3 bytes become 4 plus control information).
239