NAME
shar —
create a shell archive of
files
DEPRECATION NOTICE
shar is obsolete and may not be present in
FreeBSD 15 and later. Because shell archives are
simultaneously data and code and are typically interpreted by
sh(1), they can easily be trojan-horsed and pose a
significant security risk to users. The
tar(1) utility can still produce shar encodings of files if
needed. The sysutils/freebsd-shar port has been
created to maintain this version of shar past its
deprecation in base.
SYNOPSIS
shar |
file ... |
DESCRIPTION
The shar command writes a
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).
The shar command is normally used for
distributing files by
ftp(1) or
mail(1).
EXAMPLES
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
SEE ALSO
HISTORY
The shar command appeared in
4.4BSD.
BUGS
The shar command makes no provisions for
special types of files or files containing magic characters. The
shar command cannot handle files without a newline
('\n') as the last character.
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 -av '^[X#]' shar.file