Manual Page Search Parameters

SHAR(1) General Commands Manual SHAR(1)

sharcreate a shell archive of files

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.

shar file ...

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).

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

compress(1), mail(1), tar(1), uuencode(1)

The shar command appeared in 4.4BSD.

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
January 1, 2025 release-26.07