Manual browser: uuencode(1)

UUENCODE(1) General Commands Manual UUENCODE(1)


uuencode, uudecodeencode/decode a binary file


uuencode [-m] [inputfile] headername

uudecode [-m] [-p | -o outputfile] [encoded-file ...]


uuencode and uudecode are used to transmit binary files over transmission mediums that do not support other than simple ASCII data.

The following options are available:

Use base64 encoding. For uuencode, the historical uuencode algorithm is the default. For uudecode, by default the encoding is automatically detected.
-o outputfile
(uudecode only.) Send the decoded output data to outputfile. By default, uudecode uses the headername recorded in the header of the encoded data stream.
(uudecode only.) Write the decoded file to standard output instead of to a file.

uuencode reads inputfile (or by default the standard input) and writes an encoded version to (always) the standard output. The encoding uses only printing ASCII characters suitable for text-only transport media. The string headername is inserted into the output header as the outputfile to use at uudecode time. The header also includes the mode (permissions) of the file.

uudecode transforms uuencoded files (or by default, the standard input) into the original form. The resulting file is named headername as recorded in the encoded file, or as specified by the -o option, and will have the mode of the original file except that setuid and execute bits are not retained. If the -p option is specified, or if the output file name is given as /dev/stdout, then the data will be written to the standard output instead of to a named file. uudecode ignores any leading and trailing lines.

The encoded form of the file is expanded by 35%. Every 3 bytes become 4 plus control information.


The uudecode and uuencode utilities exits 0 on success, and >0 if an error occurs.


The following example packages up a source tree, compresses it, uuencodes it and mails it to a user on another system.

tar czf - src_tree | uuencode src_tree.tgz | mail

On the other system, if the user saves the mail to the file temp, the following example creates the file src_tree.tgz and extracts it to make a copy of the original tree.

uudecode temp 
tar xzf src_tree.tgz


The uudecode and uuencode utilities conform to IEEE Std 1003.1-2008 (“POSIX.1”).


The uudecode and uuencode utilities appeared in 4.0BSD.


When using uudecode with files coming from dubious sources, always either explicitly pass the -o option or check the header (the first line) of the encoded file for safety. Blindly using a headername from a hostile source can overwrite important files.
September 6, 2014 NetBSD 7.0