|(tool, file format)||shar - ("Shell archive", after ar and tar)
Any of the many Unix programs that creates a flattened
representation of one or more files, with the unique property
that it can be unflattened (the original files extracted)
merely by feeding it through a standard Unix shell. The
output of shar, known as a "shar file" or "sharchive", can be
distributed to anyone running Unix, and no special unpacking
software is required.|
Sharchives are intriguing in that they are typically created by shell scripts; the script that produces sharchives is thus a script which produces self-unpacking scripts, which may themselves contain scripts. The disadvantage of sharchives are that they are an ideal venue for Trojan horse attacks and that, for recipients not running Unix, no simple un-sharchiving program is possible; sharchives can and do make use of arbitrarily-powerful shell features and other Unix commands.
Different implementations of shar vary in sophistication. Some just uuencode each input file and output commands to uudecode the result, others include extensive checking to make sure the files have been transferred without corruption and that all parts of a multi-file sharchive have been unpacked.
The unshar utility strips off mail and news headers before passing the remainder of its input to sh.