basenc — Encode/decode data and print to standard output


basenc [OPTION]... [FILE]


basenc encode or decode FILE, or standard input, to standard output.

With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.


same as 'base64' program (RFC4648 section 4)


file- and url-safe base64 (RFC4648 section 5)


same as 'base32' program (RFC4648 section 6)


extended hex alphabet base32 (RFC4648 section 7)


hex encoding (RFC4648 section 8)


bit string with most significant bit (msb) first


bit string with least significant bit (lsb) first

-d, --decode

decode data

-i, --ignore-garbage

when decoding, ignore non-alphabet characters

-w, --wrap=COLS

wrap encoded lines after COLS character (default 76). Use 0 to disable line wrapping


ascii85-like encoding (ZeroMQ spec:32/Z85); when encoding, input length must be a multiple of 4; when decoding, input length must be a multiple of 5


display this help and exit


output version information and exit

When decoding, the input may contain newlines in addition to the bytes of the formal alphabet.  Use --ignore-garbage to attempt to recover from any other non-alphabet bytes in the encoded stream.

Encodings Examples

    $ printf '\376\117\202' | basenc --base64

$ printf '\376\117\202' | basenc --base64url

$ printf '\376\117\202' | basenc --base32

$ printf '\376\117\202' | basenc --base32hex

$ printf '\376\117\202' | basenc --base16

$ printf '\376\117\202' | basenc --base2lsbf

$ printf '\376\117\202' | basenc --base2msbf

$ printf '\376\117\202\000' | basenc --z85


Written by Simon Josefsson and Assaf Gordon.

Reporting Bugs

GNU coreutils online help: <>
Report any translation bugs to <>

See Also

Full documentation <>
or available locally via: info '(coreutils) basenc invocation'


October 2019 GNU coreutils 8.31