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.\" From: @(#)uuencode.1 8.1 (Berkeley) 6/6/93 29.\" $FreeBSD$ 30.\" 31.Dd April 18, 2022 32.Dt BINTRANS 1 33.Os 34.Sh NAME 35.Nm bintrans , 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 algorithm 44.Op ... 45.Nm uuencode 46.Op Fl m 47.Op Fl r 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 r 59.Op Fl w Ar column 60.Op Fl o Ar output_file 61.Op Ar file 62.Ar name 63.Nm b64decode 64.Op Fl cimprs 65.Op Ar 66.Nm b64decode 67.Op Fl i 68.Fl o Ar output_file 69.Op Ar file 70.Nm base64 71.Op Fl d 72.Op Fl w Ar column 73.Op Ar file 74.Sh DESCRIPTION 75The 76.Nm uuencode 77and 78.Nm uudecode 79utilities are used to transmit binary files over transmission mediums 80that do not support other than simple 81.Tn ASCII 82data. 83The 84.Nm b64encode 85utility is synonymous with 86.Nm uuencode 87with the 88.Fl m 89flag specified. 90The 91.Nm b64decode 92utility is synonymous with 93.Nm uudecode 94with the 95.Fl m 96flag specified. 97.Pp 98The 99.Nm base64 100utility acts as a base64 decoder when passed the 101.Fl -decode 102.Po or 103.Fl d 104.Pc 105flag and as a base64 encoder otherwise. 106As a decoder it only accepts raw base64 input 107and as an encoder it does not produce the framing lines. 108.Nm base64 109reads standard input or 110.Ar file 111if it is provided and writes to standard output. 112Options 113.Fl -wrap 114.Po or 115.Fl w 116.Pc 117and 118.Fl -ignore-garbage 119.Po or 120.Fl i 121.Pc 122are accepted for compatibility with GNU base64, 123but the latter is unimplemented and silently ignored. 124.Pp 125The 126.Nm uuencode 127utility reads 128.Ar file 129(or by default the standard input) and writes an encoded version 130to the standard output, or 131.Ar output_file 132if one has been specified. 133The encoding uses only printing 134.Tn ASCII 135characters and includes the 136mode of the file and the operand 137.Ar name 138for use by 139.Nm uudecode . 140.Pp 141The 142.Nm uudecode 143utility transforms 144.Em uuencoded 145files (or by default, the standard input) into the original form. 146The resulting file is named either 147.Ar name 148or (depending on options passed to 149.Nm uudecode ) 150.Ar output_file 151and will have the mode of the original file except that setuid 152and execute bits are not retained. 153The 154.Nm uudecode 155utility ignores any leading and trailing lines. 156.Pp 157The following options are available for 158.Nm uuencode : 159.Bl -tag -width ident 160.It Fl m 161Use the Base64 method of encoding, rather than the traditional 162.Nm uuencode 163algorithm. 164.It Fl r 165Produce raw output by excluding the initial and final framing lines. 166.It Fl o Ar output_file 167Output to 168.Ar output_file 169instead of standard output. 170.El 171.Pp 172The following options are available for 173.Nm uudecode : 174.Bl -tag -width ident 175.It Fl c 176Decode more than one uuencoded file from 177.Ar file 178if possible. 179.It Fl i 180Do not overwrite files. 181.It Fl m 182When used with the 183.Fl r 184flag, decode Base64 input instead of traditional 185.Nm uuencode 186input. 187Without 188.Fl r 189it has no effect. 190.It Fl o Ar output_file 191Output to 192.Ar output_file 193instead of any pathname contained in the input data. 194.It Fl p 195Decode 196.Ar file 197and write output to standard output. 198.It Fl r 199Decode raw (or broken) input, which is missing the initial and 200possibly the final framing lines. 201The input is assumed to be in the traditional 202.Nm uuencode 203encoding, but if the 204.Fl m 205flag is used, or if the utility is invoked as 206.Nm b64decode , 207then the input is assumed to be in Base64 format. 208.It Fl s 209Do not strip output pathname to base filename. 210By default 211.Nm uudecode 212deletes any prefix ending with the last slash '/' for security 213reasons. 214.El 215.Pp 216Additionally, 217.Nm b64encode 218accepts the following option: 219.Bl -tag -width ident 220.It Fl w Ar column 221Wrap encoded output after 222.Ar column . 223.El 224.Pp 225.Nm 226is a generic utility that can run 227any of the aforementioned encoders and decoders. 228.Sh EXAMPLES 229The following example packages up a source tree, compresses it, 230uuencodes it and mails it to a user on another system. 231When 232.Nm uudecode 233is run on the target system, the file ``src_tree.tar.Z'' will be 234created which may then be uncompressed and extracted into the original 235tree. 236.Pp 237.Bd -literal -offset indent -compact 238tar cf \- src_tree \&| compress \&| 239uuencode src_tree.tar.Z \&| mail user@example.com 240.Ed 241.Pp 242The following example unpacks all uuencoded 243files from your mailbox into your current working directory. 244.Pp 245.Bd -literal -offset indent -compact 246uudecode -c < $MAIL 247.Ed 248.Pp 249The following example extracts a compressed tar 250archive from your mailbox 251.Pp 252.Bd -literal -offset indent -compact 253uudecode -o /dev/stdout < $MAIL | zcat | tar xfv - 254.Ed 255.Sh SEE ALSO 256.Xr basename 1 , 257.Xr compress 1 , 258.Xr mail 1 , 259.Xr uucp 1 Pq Pa ports/net/freebsd-uucp , 260.Xr uuencode 5 261.Sh HISTORY 262The 263.Nm uudecode 264and 265.Nm uuencode 266utilities appeared in 267.Bx 4.0 . 268.Sh BUGS 269Files encoded using the traditional algorithm are expanded by 35% (3 270bytes become 4 plus control information). 271