uuencode

uuencode, part of the sharutils package, encodes binary files so that they are suitable for transmission as e-mail attachments. Because e-mail is a text-based protocol, certain binary characters can disrupt the e-mail itself, so encoding down to a 7-bit safe text encoding ensures that the e-mail can get through. The recipient’s e-mail client should detect the format and show the attachment as such, not as part of the text of the e-mail. uuencode is a little peculiar in that although it can read from either stdin or a file, when passed with just a filename as a parameter, it still assumes that it will be receiving the data from stdin. The last (or in this case, the only) filename it is passed is used as the name given to the file being attached. When processing stdin, this makes sense; the file has no name, but the recipient needs a name in order to be able to save or open it. Therefore, when processing a file, it is normally best to give the filename twice. The first is the name of the file, and the second is the name that the recipient will receive it as. The header is as shown in the following example. The first three words are “begin,” then the octal permissions of the file (not terribly useful in e-mail attachments), and finally the filename as it will be presented to the recipient. Here, the local file sample.odt will be sent as recipient.odt.

uuencode sample.odt recipient.odt | head begin 664 recipient.odt M4$L#!!0'''@''$&3<SY>QC(,)P'''"<''''('''';6EM971Y<&5A<'!L:6-A ...

Get Shell Scripting: Expert Recipes for Linux, Bash, and More now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.