Depending on the source (and weight you may attach),
shar dates back to around 1980. In a form which you might recognize, that comes from Rich Salz's implementation introduced in 1988, and improved in stages over the next few years.
shar was originally a convenience for bundling text files. uuencoding (a way to send binary files) has been around at least as long: I see it in 2.0BSD, dated 1989 with the manual page saying it was written by Mark Horton. It was
in use with
shar in the 1980s, though the earliest use in combination with
shar is elusive. The
README in Rich Salz's 1988 version of
On a philosophical note, I've tried to make this all as general as
possible for shipping sources around. I'm not interested in binaries, so
things like automatically running uuencode don't interest me a great
deal. I haven't come up with a good portable way to split files into
pieces if they're too large, and doubt I ever will. There are too many
installation parameters, but I'm not particularly worried about that: Once
you get things working, consider it incentive to avoid future changes.
It would be nice if I could use Larry's meta-Config, but that only works
on Unix (and Eunice). Send me your config.h file so that others can benefit.
However, William Davidsen's concurrent (a month earlier)
shar2 in comp.sources.misc (Volume 3, Issue 14) supported uuencode.