SHAR(1)

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
compress(1), mail(1), tar(1), uuencode(1)

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