1.\" $OpenBSD: uuencode.1,v 1.25 2015/09/09 16:00:22 sobrado Exp $ 2.\" $FreeBSD: uuencode.1,v 1.26 2003/03/18 14:24:47 fanf Exp $ 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. 15.\" 3. Neither the name of the University nor the names of its contributors 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 32.\" $FreeBSD$ 33.\" 34.Dd $Mdocdate: September 9 2015 $ 35.Dt UUENCODE 1 36.Os 37.Sh NAME 38.Nm uuencode , 39.Nm uudecode , 40.Nm b64encode , 41.Nm b64decode 42.Nd encode/decode a binary file 43.Sh SYNOPSIS 44.Nm uuencode 45.Op Fl m 46.Op Fl o Ar output_file 47.Op Ar file 48.Ar name 49.Nm uudecode 50.Op Fl cimprs 51.Op Ar 52.Nm uudecode 53.Op Fl i 54.Fl o Ar output_file 55.Op Ar file 56.Pp 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 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 Ds 121.It Fl m 122Use the Base64 method of encoding, rather than the traditional 123.Nm 124algorithm. 125.It Fl o Ar output_file 126Output to 127.Ar output_file 128instead of standard output. 129.El 130.Pp 131The options for 132.Nm uudecode 133are as follows: 134.Bl -tag -width Ds 135.It Fl c 136Decode more than one uuencoded file from 137.Ar file 138if possible. 139.It Fl i 140Do not overwrite files. 141.It Fl m 142When used with the 143.Fl r 144flag, decode Base64 input instead of traditional 145.Nm 146input. 147Without 148.Fl r 149it has no effect. 150.It Fl o Ar output_file 151Output to 152.Ar output_file 153instead of any pathname contained in the input data. 154.It Fl p 155Decode 156.Ar file 157and write output to standard output. 158.It Fl r 159Decode raw (or broken) input which is missing the initial and 160possibly the final framing lines. 161The input is assumed to be in the traditional 162.Nm 163encoding, but if the 164.Fl m 165flag is used, or if the utility is invoked as 166.Nm b64decode , 167then the input is assumed to be in Base64 format. 168.It Fl s 169Do not strip output pathname to base filename. 170By default 171.Nm uudecode 172deletes any prefix ending with the last slash '/' for security 173reasons. 174.El 175.Sh EXIT STATUS 176.Ex -std uuencode uudecode b64encode b64decode 177.Sh EXAMPLES 178The following example packages up a source tree, compresses it, 179uuencodes it and mails it to a user on another system. 180When 181.Nm uudecode 182is run on the target system, the file 183.Pa src_tree.tar.Z 184will be created which may then be uncompressed and extracted 185into the original tree. 186.Bd -literal -offset indent 187$ tar cf - src_tree | compress | \e 188uuencode src_tree.tar.Z | mail user@example.com 189.Ed 190.Pp 191The following example unpacks all uuencoded 192files from your mailbox into your current working directory. 193.Bd -literal -offset indent 194$ uudecode -c < $MAIL 195.Ed 196.Pp 197The following example extracts a compressed tar 198archive from your mailbox 199.Bd -literal -offset indent 200$ uudecode -o /dev/stdout < $MAIL | zcat | tar xfv - 201.Ed 202.Sh SEE ALSO 203.Xr basename 1 , 204.Xr compress 1 , 205.Xr mail 1 , 206.Xr uuencode 5 207.Sh STANDARDS 208The 209.Nm uudecode 210and 211.Nm uuencode 212utilities are compliant with the 213.St -p1003.1-2008 214specification. 215.Pp 216The flags 217.Op Fl ciprs 218are extensions to that specification. 219.Pp 220The use of the 221.Fl o 222flag for 223.Nm uuencode 224and the 225.Fl m 226flag for 227.Nm uudecode 228are also extensions to that specification. 229.Sh HISTORY 230The 231.Nm uudecode 232and 233.Nm 234utilities appeared in 235.Bx 4.0 . 236.Sh BUGS 237Files encoded using the traditional algorithm are expanded by 35% 238(3 bytes become 4 plus control information). 239