shar —
create a shell archive of files
shar writes an
  sh(1) shell script to the standard
  output which will recreate the file hierarchy specified by the command line
  operands. Directories will be recreated and must be specified before the files
  they contain (the find(1) utility
  does this correctly).
shar is normally used for distributing
    files by ftp(1) or
    mail(1).
To create a shell archive of the program
  ls(1) and mail it to Rick:
cd ls
shar `find . -print` |  mail -s "ls source" rick
 
To recreate the program directory:
mkdir ls
cd ls
...
<delete header lines and examine mailed archive>
...
sh archive
 
The shar command appeared in
  4.4BSD.
shar makes no provisions for special types of files or
  files containing magic characters.
It is easy to insert trojan horses into shar files. It
  is strongly recommended that all shell archive files be examined before
  running them through sh(1). Archives
  produced using this implementation of shar may be
  easily examined with the command:
egrep -v '^[X#]' shar.file