xref: /dragonfly/usr.bin/uuencode/uuencode.1 (revision c89a6c1b)
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. All advertising materials mentioning features or use of this software
13.\"    must display the following acknowledgement:
14.\"	This product includes software developed by the University of
15.\"	California, Berkeley and its contributors.
16.\" 4. 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: src/usr.bin/uuencode/uuencode.1,v 1.9.2.9 2003/04/07 20:11:46 fanf Exp $
34.\" $DragonFly: src/usr.bin/uuencode/uuencode.1,v 1.3 2006/02/17 19:39:14 swildner Exp $
35.\"
36.Dd January 27, 2002
37.Dt UUENCODE 1
38.Os
39.Sh NAME
40.Nm uuencode ,
41.Nm uudecode ,
42.Nm b64encode ,
43.Nm b64decode
44.Nd encode/decode a binary file
45.Sh SYNOPSIS
46.Nm
47.Op Fl m
48.Op Fl o Ar output_file
49.Op Ar file
50.Ar name
51.Nm uudecode
52.Op Fl cimprs
53.Op Ar
54.Nm uudecode
55.Op Fl i
56.Fl o Ar output_file
57.Nm b64encode
58.Op Fl o Ar output_file
59.Op Ar file
60.Ar name
61.Nm b64decode
62.Op Fl cimprs
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
71and
72.Nm uudecode
73utilities are used to transmit binary files over transmission mediums
74that do not support other than simple
75.Tn ASCII
76data.
77The
78.Nm b64encode
79utility is synonymous with
80.Nm
81with the
82.Fl m
83flag specified.
84The
85.Nm b64decode
86utility is synonymous with
87.Nm uudecode
88with the
89.Fl m
90flag specified.
91.Pp
92The
93.Nm
94utility reads
95.Ar file
96(or by default the standard input) and writes an encoded version
97to the standard output, or
98.Ar output_file
99if one has been specified.
100The encoding uses only printing
101.Tn ASCII
102characters and includes the
103mode of the file and the operand
104.Ar name
105for use by
106.Nm uudecode .
107.Pp
108The
109.Nm uudecode
110utility transforms
111.Em uuencoded
112files (or by default, the standard input) into the original form.
113The resulting file is named either
114.Ar name
115or (depending on options passed to
116.Nm uudecode )
117.Ar output_file
118and will have the mode of the original file except that setuid
119and execute bits are not retained.
120The
121.Nm uudecode
122utility ignores any leading and trailing lines.
123.Pp
124The following options are available for
125.Nm :
126.Bl -tag -width ident
127.It Fl m
128Use the Base64 method of encoding, rather than the traditional
129.Nm
130algorithm.
131.It Fl o Ar output_file
132Output to
133.Ar output_file
134instead of standard output.
135.El
136.Pp
137The following options are available for
138.Nm uudecode :
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 ``src_tree.tar.Z'' will be
186created which may then be uncompressed and extracted into the original
187tree.
188.Pp
189.Bd -literal -offset indent -compact
190tar cf \- src_tree \&| compress \&|
191uuencode src_tree.tar.Z \&| mail sys1!sys2!user
192.Ed
193.Pp
194The following example unpacks all uuencoded
195files from your mailbox into your current working directory.
196.Pp
197.Bd -literal -offset indent -compact
198uudecode -c < $MAIL
199.Ed
200.Pp
201The following example extracts a compressed tar
202archive from your mailbox
203.Pp
204.Bd -literal -offset indent -compact
205uudecode -o /dev/stdout < $MAIL | zcat | tar xfv -
206.Ed
207.Sh SEE ALSO
208.Xr basename 1 ,
209.Xr compress 1 ,
210.Xr mail 1 ,
211.Xr uucp 1 ,
212.Xr uuencode 5
213.Sh HISTORY
214The
215.Nm uudecode
216and
217.Nm
218utilities appeared in
219.Bx 4.0 .
220.Sh BUGS
221Files encoded using the traditional algorithm are expanded by 35% (3
222bytes become 4 plus control information).
223