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