shar definition tool, file format
("Shell archive", after ar
) Any of the many Unix
programs that creates a flatten
ed 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.
utility strips off mail and news headers before passing the remainder of its input to sh.