---
name: "uuencode"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/uuencode"
---

# uuencode(1)

encode/decode a binary file

## NAME

**uuencode**, **uudecode**, **b64encode**, **b64decode** – encode/decode a binary file

## SYNOPSIS

**uuencode** \[**-m**\] \[**-o** *output\_file*\] \[*file*\] *name*

**uudecode** \[**-cimprs**\] \[*file ...*\]

**uudecode** \[**-i**\] **-o** *output\_file* \[*file*\]

**b64encode** \[**-o** *output\_file*\] \[*file*\] *name*

**b64decode** \[**-ciprs**\] \[*file ...*\]

**b64decode** \[**-i**\] **-o** *output\_file* \[*file*\]

## DESCRIPTION

The **uuencode** and **uudecode** utilities are used to transmit binary files over transmission mediums that do not support formats other than printable ASCII data. **b64encode** and **b64decode** are equivalent to running **uuencode** and **uudecode** respectively with the **-m** flag specified.

**uuencode** reads *file* (or by default, the standard input) and writes an encoded version to the standard output, or to *output\_file* if it has been specified. The encoding uses only printing ASCII characters and includes the mode of the file and the operand *name* for use by **uudecode**.

**uudecode** transforms “uuencoded” files (or by default, the standard input) into the original form. The resulting file is named either *name* or (depending on options passed to **uudecode**) *output\_file* and will have the mode of the original file except that set-user-ID and execute bits are not retained. **uudecode** ignores any leading and trailing lines.

The options for **uuencode** are as follows:

- **-m**

  Use the Base64 method of encoding, rather than the traditional **uuencode** algorithm.

- **-o** *output\_file*

  Output to *output\_file* instead of standard output.

The options for **uudecode** are as follows:

- **-c**

  Decode more than one uuencoded file from *file* if possible.

- **-i**

  Do not overwrite files.

- **-m**

  When used with the **-r** flag, decode Base64 input instead of traditional **uuencode** input. Without **-r** it has no effect.

- **-o** *output\_file*

  Output to *output\_file* instead of any pathname contained in the input data.

- **-p**

  Decode *file* and write output to standard output.

- **-r**

  Decode raw (or broken) input which is missing the initial and possibly the final framing lines. The input is assumed to be in the traditional **uuencode** encoding, but if the **-m** flag is used, or if the utility is invoked as **b64decode**, then the input is assumed to be in Base64 format.

- **-s**

  Do not strip output pathname to base filename. By default **uudecode** deletes any prefix ending with the last slash '/' for security reasons.

## EXIT STATUS

The **uuencode**, **uudecode**, **b64encode**, and **b64decode** utilities exit 0 on success, and \>0 if an error occurs.

## EXAMPLES

The following example packages up a source tree, compresses it, uuencodes it and mails it to a user on another system. When **uudecode** is run on the target system, the file *src\_tree.tar.Z* will be created which may then be uncompressed and extracted into the original tree.

```
$ tar cf - src_tree | compress | \
uuencode src_tree.tar.Z | mail user@example.com
```

The following example unpacks all uuencoded files from your mailbox into your current working directory.

```
$ uudecode -c < $MAIL
```

The following example extracts a compressed tar archive from your mailbox

```
$ uudecode -o /dev/stdout < $MAIL | zcat | tar xfv -
```

## SEE ALSO

[basename(1)](/basename/1.md), [compress(1)](/compress/1.md), [mail(1)](/mail/1.md), [uuencode(5)](/uuencode/5.md)

## STANDARDS

The **uudecode** and **uuencode** utilities are compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification.

The flags \[**-ciprs**\] are extensions to that specification.

The use of the **-o** flag for **uuencode** and the **-m** flag for **uudecode** are also extensions to that specification.

## HISTORY

The **uudecode** and **uuencode** utilities appeared in 4.0BSD.

## BUGS

Files encoded using the traditional algorithm are expanded by 35% (3 bytes become 4 plus control information).
