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