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