xref: /freebsd/usr.bin/bintrans/bintrans.1 (revision 491db92a1751ae3546cee4e73f43d7146cc9dc9d)
147bcbde9SPiotr Pawel Stefaniak.\" Copyright (c) 1980, 1990, 1993
247bcbde9SPiotr Pawel Stefaniak.\"	The Regents of the University of California.  All rights reserved.
347bcbde9SPiotr Pawel Stefaniak.\"
447bcbde9SPiotr Pawel Stefaniak.\" Redistribution and use in source and binary forms, with or without
547bcbde9SPiotr Pawel Stefaniak.\" modification, are permitted provided that the following conditions
647bcbde9SPiotr Pawel Stefaniak.\" are met:
747bcbde9SPiotr Pawel Stefaniak.\" 1. Redistributions of source code must retain the above copyright
847bcbde9SPiotr Pawel Stefaniak.\"    notice, this list of conditions and the following disclaimer.
947bcbde9SPiotr Pawel Stefaniak.\" 2. Redistributions in binary form must reproduce the above copyright
1047bcbde9SPiotr Pawel Stefaniak.\"    notice, this list of conditions and the following disclaimer in the
1147bcbde9SPiotr Pawel Stefaniak.\"    documentation and/or other materials provided with the distribution.
1247bcbde9SPiotr Pawel Stefaniak.\" 3. Neither the name of the University nor the names of its contributors
1347bcbde9SPiotr Pawel Stefaniak.\"    may be used to endorse or promote products derived from this software
1447bcbde9SPiotr Pawel Stefaniak.\"    without specific prior written permission.
1547bcbde9SPiotr Pawel Stefaniak.\"
1647bcbde9SPiotr Pawel Stefaniak.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
1747bcbde9SPiotr Pawel Stefaniak.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1847bcbde9SPiotr Pawel Stefaniak.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1947bcbde9SPiotr Pawel Stefaniak.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2047bcbde9SPiotr Pawel Stefaniak.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2147bcbde9SPiotr Pawel Stefaniak.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2247bcbde9SPiotr Pawel Stefaniak.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2347bcbde9SPiotr Pawel Stefaniak.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2447bcbde9SPiotr Pawel Stefaniak.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2547bcbde9SPiotr Pawel Stefaniak.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2647bcbde9SPiotr Pawel Stefaniak.\" SUCH DAMAGE.
2747bcbde9SPiotr Pawel Stefaniak.\"
28a8d9bd3fSBaptiste Daroussin.Dd January 8, 2025
2947bcbde9SPiotr Pawel Stefaniak.Dt BINTRANS 1
3047bcbde9SPiotr Pawel Stefaniak.Os
3147bcbde9SPiotr Pawel Stefaniak.Sh NAME
3247bcbde9SPiotr Pawel Stefaniak.Nm bintrans ,
3347bcbde9SPiotr Pawel Stefaniak.Nm uuencode ,
3447bcbde9SPiotr Pawel Stefaniak.Nm uudecode ,
3547bcbde9SPiotr Pawel Stefaniak.Nm b64encode ,
3664028ac3SDag-Erling Smørgrav.Nm b64decode ,
3764028ac3SDag-Erling Smørgrav.Nm base64
3847bcbde9SPiotr Pawel Stefaniak.Nd encode / decode a binary file
3947bcbde9SPiotr Pawel Stefaniak.Sh SYNOPSIS
4047bcbde9SPiotr Pawel Stefaniak.Nm
4147bcbde9SPiotr Pawel Stefaniak.Op algorithm
4247bcbde9SPiotr Pawel Stefaniak.Op ...
4347bcbde9SPiotr Pawel Stefaniak.Nm uuencode
4447bcbde9SPiotr Pawel Stefaniak.Op Fl m
4547bcbde9SPiotr Pawel Stefaniak.Op Fl r
4647bcbde9SPiotr Pawel Stefaniak.Op Fl o Ar output_file
4747bcbde9SPiotr Pawel Stefaniak.Op Ar file
4847bcbde9SPiotr Pawel Stefaniak.Ar name
4947bcbde9SPiotr Pawel Stefaniak.Nm uudecode
5047bcbde9SPiotr Pawel Stefaniak.Op Fl cimprs
5147bcbde9SPiotr Pawel Stefaniak.Op Ar
5247bcbde9SPiotr Pawel Stefaniak.Nm uudecode
5347bcbde9SPiotr Pawel Stefaniak.Op Fl i
5447bcbde9SPiotr Pawel Stefaniak.Fl o Ar output_file
5547bcbde9SPiotr Pawel Stefaniak.Nm b64encode
5647bcbde9SPiotr Pawel Stefaniak.Op Fl r
572ad786c6SPiotr Pawel Stefaniak.Op Fl w Ar column
5847bcbde9SPiotr Pawel Stefaniak.Op Fl o Ar output_file
5947bcbde9SPiotr Pawel Stefaniak.Op Ar file
6047bcbde9SPiotr Pawel Stefaniak.Ar name
6147bcbde9SPiotr Pawel Stefaniak.Nm b64decode
6247bcbde9SPiotr Pawel Stefaniak.Op Fl cimprs
6347bcbde9SPiotr Pawel Stefaniak.Op Ar
6447bcbde9SPiotr Pawel Stefaniak.Nm b64decode
6547bcbde9SPiotr Pawel Stefaniak.Op Fl i
6647bcbde9SPiotr Pawel Stefaniak.Fl o Ar output_file
6747bcbde9SPiotr Pawel Stefaniak.Op Ar file
68540a9928SPiotr Pawel Stefaniak.Nm base64
69540a9928SPiotr Pawel Stefaniak.Op Fl d
70540a9928SPiotr Pawel Stefaniak.Op Fl w Ar column
71540a9928SPiotr Pawel Stefaniak.Op Ar file
7247bcbde9SPiotr Pawel Stefaniak.Sh DESCRIPTION
7347bcbde9SPiotr Pawel StefaniakThe
7447bcbde9SPiotr Pawel Stefaniak.Nm uuencode
7547bcbde9SPiotr Pawel Stefaniakand
7647bcbde9SPiotr Pawel Stefaniak.Nm uudecode
7747bcbde9SPiotr Pawel Stefaniakutilities are used to transmit binary files over transmission mediums
7847bcbde9SPiotr Pawel Stefaniakthat do not support other than simple
7947bcbde9SPiotr Pawel Stefaniak.Tn ASCII
8047bcbde9SPiotr Pawel Stefaniakdata.
8147bcbde9SPiotr Pawel StefaniakThe
8247bcbde9SPiotr Pawel Stefaniak.Nm b64encode
8347bcbde9SPiotr Pawel Stefaniakutility is synonymous with
8447bcbde9SPiotr Pawel Stefaniak.Nm uuencode
8547bcbde9SPiotr Pawel Stefaniakwith the
8647bcbde9SPiotr Pawel Stefaniak.Fl m
8747bcbde9SPiotr Pawel Stefaniakflag specified.
8847bcbde9SPiotr Pawel StefaniakThe
8947bcbde9SPiotr Pawel Stefaniak.Nm b64decode
9047bcbde9SPiotr Pawel Stefaniakutility is synonymous with
9147bcbde9SPiotr Pawel Stefaniak.Nm uudecode
9247bcbde9SPiotr Pawel Stefaniakwith the
9347bcbde9SPiotr Pawel Stefaniak.Fl m
9447bcbde9SPiotr Pawel Stefaniakflag specified.
9547bcbde9SPiotr Pawel Stefaniak.Pp
9647bcbde9SPiotr Pawel StefaniakThe
97540a9928SPiotr Pawel Stefaniak.Nm base64
98540a9928SPiotr Pawel Stefaniakutility acts as a base64 decoder when passed the
99540a9928SPiotr Pawel Stefaniak.Fl -decode
100540a9928SPiotr Pawel Stefaniak.Po or
101540a9928SPiotr Pawel Stefaniak.Fl d
102540a9928SPiotr Pawel Stefaniak.Pc
103540a9928SPiotr Pawel Stefaniakflag and as a base64 encoder otherwise.
104540a9928SPiotr Pawel StefaniakAs a decoder it only accepts raw base64 input
105540a9928SPiotr Pawel Stefaniakand as an encoder it does not produce the framing lines.
106540a9928SPiotr Pawel Stefaniak.Nm base64
107540a9928SPiotr Pawel Stefaniakreads standard input or
108540a9928SPiotr Pawel Stefaniak.Ar file
109540a9928SPiotr Pawel Stefaniakif it is provided and writes to standard output.
110540a9928SPiotr Pawel StefaniakOptions
111540a9928SPiotr Pawel Stefaniak.Fl -wrap
112540a9928SPiotr Pawel Stefaniak.Po or
113540a9928SPiotr Pawel Stefaniak.Fl w
114540a9928SPiotr Pawel Stefaniak.Pc
115540a9928SPiotr Pawel Stefaniakand
116540a9928SPiotr Pawel Stefaniak.Fl -ignore-garbage
117540a9928SPiotr Pawel Stefaniak.Po or
118540a9928SPiotr Pawel Stefaniak.Fl i
119540a9928SPiotr Pawel Stefaniak.Pc
120540a9928SPiotr Pawel Stefaniakare accepted for compatibility with GNU base64,
121540a9928SPiotr Pawel Stefaniakbut the latter is unimplemented and silently ignored.
122540a9928SPiotr Pawel Stefaniak.Pp
123540a9928SPiotr Pawel StefaniakThe
12447bcbde9SPiotr Pawel Stefaniak.Nm uuencode
12547bcbde9SPiotr Pawel Stefaniakutility reads
12647bcbde9SPiotr Pawel Stefaniak.Ar file
12747bcbde9SPiotr Pawel Stefaniak(or by default the standard input) and writes an encoded version
12847bcbde9SPiotr Pawel Stefaniakto the standard output, or
12947bcbde9SPiotr Pawel Stefaniak.Ar output_file
13047bcbde9SPiotr Pawel Stefaniakif one has been specified.
13147bcbde9SPiotr Pawel StefaniakThe encoding uses only printing
13247bcbde9SPiotr Pawel Stefaniak.Tn ASCII
13347bcbde9SPiotr Pawel Stefaniakcharacters and includes the
13447bcbde9SPiotr Pawel Stefaniakmode of the file and the operand
13547bcbde9SPiotr Pawel Stefaniak.Ar name
13647bcbde9SPiotr Pawel Stefaniakfor use by
13747bcbde9SPiotr Pawel Stefaniak.Nm uudecode .
13847bcbde9SPiotr Pawel Stefaniak.Pp
13947bcbde9SPiotr Pawel StefaniakThe
14047bcbde9SPiotr Pawel Stefaniak.Nm uudecode
14147bcbde9SPiotr Pawel Stefaniakutility transforms
14247bcbde9SPiotr Pawel Stefaniak.Em uuencoded
14347bcbde9SPiotr Pawel Stefaniakfiles (or by default, the standard input) into the original form.
14447bcbde9SPiotr Pawel StefaniakThe resulting file is named either
14547bcbde9SPiotr Pawel Stefaniak.Ar name
14647bcbde9SPiotr Pawel Stefaniakor (depending on options passed to
14747bcbde9SPiotr Pawel Stefaniak.Nm uudecode )
14847bcbde9SPiotr Pawel Stefaniak.Ar output_file
14947bcbde9SPiotr Pawel Stefaniakand will have the mode of the original file except that setuid
15047bcbde9SPiotr Pawel Stefaniakand execute bits are not retained.
15147bcbde9SPiotr Pawel StefaniakThe
15247bcbde9SPiotr Pawel Stefaniak.Nm uudecode
15347bcbde9SPiotr Pawel Stefaniakutility ignores any leading and trailing lines.
15447bcbde9SPiotr Pawel Stefaniak.Pp
15547bcbde9SPiotr Pawel StefaniakThe following options are available for
15647bcbde9SPiotr Pawel Stefaniak.Nm uuencode :
1579fd66e40SGraham Percival.Bl -tag -width indent
15847bcbde9SPiotr Pawel Stefaniak.It Fl m
15947bcbde9SPiotr Pawel StefaniakUse the Base64 method of encoding, rather than the traditional
16047bcbde9SPiotr Pawel Stefaniak.Nm uuencode
16147bcbde9SPiotr Pawel Stefaniakalgorithm.
16247bcbde9SPiotr Pawel Stefaniak.It Fl r
16347bcbde9SPiotr Pawel StefaniakProduce raw output by excluding the initial and final framing lines.
16447bcbde9SPiotr Pawel Stefaniak.It Fl o Ar output_file
16547bcbde9SPiotr Pawel StefaniakOutput to
16647bcbde9SPiotr Pawel Stefaniak.Ar output_file
16747bcbde9SPiotr Pawel Stefaniakinstead of standard output.
16847bcbde9SPiotr Pawel Stefaniak.El
16947bcbde9SPiotr Pawel Stefaniak.Pp
17047bcbde9SPiotr Pawel StefaniakThe following options are available for
17147bcbde9SPiotr Pawel Stefaniak.Nm uudecode :
1729fd66e40SGraham Percival.Bl -tag -width indent
17347bcbde9SPiotr Pawel Stefaniak.It Fl c
17447bcbde9SPiotr Pawel StefaniakDecode more than one uuencoded file from
17547bcbde9SPiotr Pawel Stefaniak.Ar file
17647bcbde9SPiotr Pawel Stefaniakif possible.
17747bcbde9SPiotr Pawel Stefaniak.It Fl i
17847bcbde9SPiotr Pawel StefaniakDo not overwrite files.
17947bcbde9SPiotr Pawel Stefaniak.It Fl m
18047bcbde9SPiotr Pawel StefaniakWhen used with the
18147bcbde9SPiotr Pawel Stefaniak.Fl r
18247bcbde9SPiotr Pawel Stefaniakflag, decode Base64 input instead of traditional
18347bcbde9SPiotr Pawel Stefaniak.Nm uuencode
18447bcbde9SPiotr Pawel Stefaniakinput.
18547bcbde9SPiotr Pawel StefaniakWithout
18647bcbde9SPiotr Pawel Stefaniak.Fl r
18747bcbde9SPiotr Pawel Stefaniakit has no effect.
18847bcbde9SPiotr Pawel Stefaniak.It Fl o Ar output_file
18947bcbde9SPiotr Pawel StefaniakOutput to
19047bcbde9SPiotr Pawel Stefaniak.Ar output_file
19147bcbde9SPiotr Pawel Stefaniakinstead of any pathname contained in the input data.
19247bcbde9SPiotr Pawel Stefaniak.It Fl p
19347bcbde9SPiotr Pawel StefaniakDecode
19447bcbde9SPiotr Pawel Stefaniak.Ar file
19547bcbde9SPiotr Pawel Stefaniakand write output to standard output.
19647bcbde9SPiotr Pawel Stefaniak.It Fl r
19747bcbde9SPiotr Pawel StefaniakDecode raw (or broken) input, which is missing the initial and
19847bcbde9SPiotr Pawel Stefaniakpossibly the final framing lines.
19947bcbde9SPiotr Pawel StefaniakThe input is assumed to be in the traditional
20047bcbde9SPiotr Pawel Stefaniak.Nm uuencode
20147bcbde9SPiotr Pawel Stefaniakencoding, but if the
20247bcbde9SPiotr Pawel Stefaniak.Fl m
20347bcbde9SPiotr Pawel Stefaniakflag is used, or if the utility is invoked as
20447bcbde9SPiotr Pawel Stefaniak.Nm b64decode ,
20547bcbde9SPiotr Pawel Stefaniakthen the input is assumed to be in Base64 format.
20647bcbde9SPiotr Pawel Stefaniak.It Fl s
20747bcbde9SPiotr Pawel StefaniakDo not strip output pathname to base filename.
20847bcbde9SPiotr Pawel StefaniakBy default
20947bcbde9SPiotr Pawel Stefaniak.Nm uudecode
21047bcbde9SPiotr Pawel Stefaniakdeletes any prefix ending with the last slash '/' for security
21147bcbde9SPiotr Pawel Stefaniakreasons.
21247bcbde9SPiotr Pawel Stefaniak.El
21347bcbde9SPiotr Pawel Stefaniak.Pp
2142ad786c6SPiotr Pawel StefaniakAdditionally,
2152ad786c6SPiotr Pawel Stefaniak.Nm b64encode
2162ad786c6SPiotr Pawel Stefaniakaccepts the following option:
2179fd66e40SGraham Percival.Bl -tag -width indent
2182ad786c6SPiotr Pawel Stefaniak.It Fl w Ar column
2192ad786c6SPiotr Pawel StefaniakWrap encoded output after
2202ad786c6SPiotr Pawel Stefaniak.Ar column .
2212ad786c6SPiotr Pawel Stefaniak.El
2222ad786c6SPiotr Pawel Stefaniak.Pp
22347bcbde9SPiotr Pawel Stefaniak.Nm
22447bcbde9SPiotr Pawel Stefaniakis a generic utility that can run
22547bcbde9SPiotr Pawel Stefaniakany of the aforementioned encoders and decoders.
226aad4fd54SPiotr Pawel StefaniakIt can also run algorithms that are not available
227aad4fd54SPiotr Pawel Stefaniakthrough a dedicated program:
228aad4fd54SPiotr Pawel Stefaniak.Pp
229aad4fd54SPiotr Pawel Stefaniak.Nm qp
230aad4fd54SPiotr Pawel Stefaniakis a quoted-printable converter
231aad4fd54SPiotr Pawel Stefaniakand accepts the following options:
2329fd66e40SGraham Percival.Bl -tag -width indent
233a8d9bd3fSBaptiste Daroussin.It Fl d
234aad4fd54SPiotr Pawel StefaniakDecode.
235aad4fd54SPiotr Pawel Stefaniak.It Fl o Ar output_file
236aad4fd54SPiotr Pawel StefaniakOutput to
237aad4fd54SPiotr Pawel Stefaniak.Ar output_file
238aad4fd54SPiotr Pawel Stefaniakinstead of standard output.
239*491db92aSBaptiste Daroussin.It Fl r
240beab8b1dSBaptiste DaroussinEncode/Decode in RFC2047 specific variant.
241643fc698SGraham Percival.El
24247bcbde9SPiotr Pawel Stefaniak.Sh EXAMPLES
24347bcbde9SPiotr Pawel StefaniakThe following example packages up a source tree, compresses it,
24447bcbde9SPiotr Pawel Stefaniakuuencodes it and mails it to a user on another system.
24547bcbde9SPiotr Pawel StefaniakWhen
24647bcbde9SPiotr Pawel Stefaniak.Nm uudecode
24747bcbde9SPiotr Pawel Stefaniakis run on the target system, the file ``src_tree.tar.Z'' will be
24847bcbde9SPiotr Pawel Stefaniakcreated which may then be uncompressed and extracted into the original
24947bcbde9SPiotr Pawel Stefaniaktree.
25047bcbde9SPiotr Pawel Stefaniak.Pp
25147bcbde9SPiotr Pawel Stefaniak.Bd -literal -offset indent -compact
25247bcbde9SPiotr Pawel Stefaniaktar cf \- src_tree \&| compress \&|
25347bcbde9SPiotr Pawel Stefaniakuuencode src_tree.tar.Z \&| mail user@example.com
25447bcbde9SPiotr Pawel Stefaniak.Ed
25547bcbde9SPiotr Pawel Stefaniak.Pp
25647bcbde9SPiotr Pawel StefaniakThe following example unpacks all uuencoded
25747bcbde9SPiotr Pawel Stefaniakfiles from your mailbox into your current working directory.
25847bcbde9SPiotr Pawel Stefaniak.Pp
25947bcbde9SPiotr Pawel Stefaniak.Bd -literal -offset indent -compact
26047bcbde9SPiotr Pawel Stefaniakuudecode -c < $MAIL
26147bcbde9SPiotr Pawel Stefaniak.Ed
26247bcbde9SPiotr Pawel Stefaniak.Pp
26347bcbde9SPiotr Pawel StefaniakThe following example extracts a compressed tar
26447bcbde9SPiotr Pawel Stefaniakarchive from your mailbox
26547bcbde9SPiotr Pawel Stefaniak.Pp
26647bcbde9SPiotr Pawel Stefaniak.Bd -literal -offset indent -compact
26747bcbde9SPiotr Pawel Stefaniakuudecode -o /dev/stdout < $MAIL | zcat | tar xfv -
26847bcbde9SPiotr Pawel Stefaniak.Ed
26947bcbde9SPiotr Pawel Stefaniak.Sh SEE ALSO
27047bcbde9SPiotr Pawel Stefaniak.Xr basename 1 ,
27147bcbde9SPiotr Pawel Stefaniak.Xr compress 1 ,
27247bcbde9SPiotr Pawel Stefaniak.Xr mail 1 ,
27347bcbde9SPiotr Pawel Stefaniak.Xr uucp 1 Pq Pa ports/net/freebsd-uucp ,
27447bcbde9SPiotr Pawel Stefaniak.Xr uuencode 5
27547bcbde9SPiotr Pawel Stefaniak.Sh HISTORY
27647bcbde9SPiotr Pawel StefaniakThe
27747bcbde9SPiotr Pawel Stefaniak.Nm uudecode
27847bcbde9SPiotr Pawel Stefaniakand
27947bcbde9SPiotr Pawel Stefaniak.Nm uuencode
28047bcbde9SPiotr Pawel Stefaniakutilities appeared in
28147bcbde9SPiotr Pawel Stefaniak.Bx 4.0 .
28247bcbde9SPiotr Pawel Stefaniak.Sh BUGS
28347bcbde9SPiotr Pawel StefaniakFiles encoded using the traditional algorithm are expanded by 35% (3
28447bcbde9SPiotr Pawel Stefaniakbytes become 4 plus control information).
285