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. Neither the name of the University nor the names of its contributors 13.\" may be used to endorse or promote products derived from this software 14.\" without specific prior written permission. 15.\" 16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26.\" SUCH DAMAGE. 27.\" 28.\" @(#)uuencode.1 8.1 (Berkeley) 6/6/93 29.\" $FreeBSD: src/usr.bin/uuencode/uuencode.1,v 1.9.2.9 2003/04/07 20:11:46 fanf Exp $ 30.\" $DragonFly: src/usr.bin/uuencode/uuencode.1,v 1.3 2006/02/17 19:39:14 swildner Exp $ 31.\" 32.Dd January 27, 2002 33.Dt UUENCODE 1 34.Os 35.Sh NAME 36.Nm uuencode , 37.Nm uudecode , 38.Nm b64encode , 39.Nm b64decode 40.Nd encode/decode a binary file 41.Sh SYNOPSIS 42.Nm 43.Op Fl m 44.Op Fl o Ar output_file 45.Op Ar file 46.Ar name 47.Nm uudecode 48.Op Fl cimprs 49.Op Ar 50.Nm uudecode 51.Op Fl i 52.Fl o Ar output_file 53.Nm b64encode 54.Op Fl o Ar output_file 55.Op Ar file 56.Ar name 57.Nm b64decode 58.Op Fl cimprs 59.Op Ar 60.Nm b64decode 61.Op Fl i 62.Fl o Ar output_file 63.Op Ar file 64.Sh DESCRIPTION 65The 66.Nm 67and 68.Nm uudecode 69utilities are used to transmit binary files over transmission mediums 70that do not support other than simple 71.Tn ASCII 72data. 73The 74.Nm b64encode 75utility is synonymous with 76.Nm 77with the 78.Fl m 79flag specified. 80The 81.Nm b64decode 82utility is synonymous with 83.Nm uudecode 84with the 85.Fl m 86flag specified. 87.Pp 88The 89.Nm 90utility reads 91.Ar file 92(or by default the standard input) and writes an encoded version 93to the standard output, or 94.Ar output_file 95if one has been specified. 96The encoding uses only printing 97.Tn ASCII 98characters and includes the 99mode of the file and the operand 100.Ar name 101for use by 102.Nm uudecode . 103.Pp 104The 105.Nm uudecode 106utility transforms 107.Em uuencoded 108files (or by default, the standard input) into the original form. 109The resulting file is named either 110.Ar name 111or (depending on options passed to 112.Nm uudecode ) 113.Ar output_file 114and will have the mode of the original file except that setuid 115and execute bits are not retained. 116The 117.Nm uudecode 118utility ignores any leading and trailing lines. 119.Pp 120The following options are available for 121.Nm : 122.Bl -tag -width ident 123.It Fl m 124Use the Base64 method of encoding, rather than the traditional 125.Nm 126algorithm. 127.It Fl o Ar output_file 128Output to 129.Ar output_file 130instead of standard output. 131.El 132.Pp 133The following options are available for 134.Nm uudecode : 135.Bl -tag -width ident 136.It Fl c 137Decode more than one uuencoded file from 138.Ar file 139if possible. 140.It Fl i 141Do not overwrite files. 142.It Fl m 143When used with the 144.Fl r 145flag, decode Base64 input instead of traditional 146.Nm 147input. 148Without 149.Fl r 150it has no effect. 151.It Fl o Ar output_file 152Output to 153.Ar output_file 154instead of any pathname contained in the input data. 155.It Fl p 156Decode 157.Ar file 158and write output to standard output. 159.It Fl r 160Decode raw (or broken) input, which is missing the initial and 161possibly the final framing lines. 162The input is assumed to be in the traditional 163.Nm 164encoding, but if the 165.Fl m 166flag is used, or if the utility is invoked as 167.Nm b64decode , 168then the input is assumed to be in Base64 format. 169.It Fl s 170Do not strip output pathname to base filename. 171By default 172.Nm uudecode 173deletes any prefix ending with the last slash '/' for security 174reasons. 175.El 176.Sh EXAMPLES 177The following example packages up a source tree, compresses it, 178uuencodes it and mails it to a user on another system. 179When 180.Nm uudecode 181is run on the target system, the file ``src_tree.tar.Z'' will be 182created which may then be uncompressed and extracted into the original 183tree. 184.Pp 185.Bd -literal -offset indent -compact 186tar cf \- src_tree \&| compress \&| 187uuencode src_tree.tar.Z \&| mail sys1!sys2!user 188.Ed 189.Pp 190The following example unpacks all uuencoded 191files from your mailbox into your current working directory. 192.Pp 193.Bd -literal -offset indent -compact 194uudecode -c < $MAIL 195.Ed 196.Pp 197The following example extracts a compressed tar 198archive from your mailbox 199.Pp 200.Bd -literal -offset indent -compact 201uudecode -o /dev/stdout < $MAIL | zcat | tar xfv - 202.Ed 203.Sh SEE ALSO 204.Xr basename 1 , 205.Xr compress 1 , 206.Xr mail 1 , 207.Xr uucp 1 , 208.Xr uuencode 5 209.Sh HISTORY 210The 211.Nm uudecode 212and 213.Nm 214utilities appeared in 215.Bx 4.0 . 216.Sh BUGS 217Files encoded using the traditional algorithm are expanded by 35% (3 218bytes become 4 plus control information). 219