SHAR(1L)

NAME
shar - create shell archive file for extraction by /bin/sh

SYNOPSIS
    shar [ -b ] [ -iname ] [ -n# ] [ -e# ] [ -oname ] [ -ttext ] [ -v ] [ -w ] [file...]

DESCRIPTION
Shar takes a list of files, and generates a /bin/sh script that, when executed, will re-create those files in a different directory or on a different machine. The resultant script will use wc(1) to do a mild error-check, and will warn about possibly-omitted control characters.

Shar generates scripts that will make directories and plain files. It will not try to generate intermediate filenames, however, so
    shar foo/bar/file
will not work. Do
    shar foo foo/bar foo/bar/file
instead.

The script is normally sent to standard output; the ``-o'' option may be used to specify an output filename. This is designed to prevent filling up the disk if
    shar * >SHAR
command is done; do
    shar -o SHAR *
instead.

The list of files is normally specified on the command line; the ''-i'' option may be used instead, to specify a file that contains the list of files to pack up, one per line. If the file name is ``-'' the standard input is read.

The ``-b'' option says that all leading directory names should be stripped from the file when they are packed into the archive. For example,
    shar -b /etc/termcap
creates an archive that, when executed, creates a file named ``termcap'' in the current directory, rather than overwrite the host system file. Note, however, that the scripts generated by shar normally refuse to overwrite pre-existing files.

The scripts generated by shar normally contain comments indicating what is in the archive and who packaged it. They also contain as echo(1) commands to print messages such as
    shar: End of archive.
If the ``-w'' flag is used, then shar will not generate the prolog and epilog. This is useful when the shar's are within a larger software distribution scheme.

  Multi-part Archives
Most larger software packages are usually sent out in two or more shell archives. The ``-n,'' ``-e,'' and ``-t'' options are used to make an archive that is part of a series. The individual archives are often called ``kits'' when this is done. The ``-n'' option specifies the archive number; the ``-e'' option species the highest number in the series. When executed, the generated archives will then echo messages like
    shar: End of archive 3 (of 9).
at their end.

In addition, each shar will generate a file named arkXisdone. Each script will contain a loop to check for the presence of these files, and indicate to the recipient which archives still need to be executed. The ``-t'' option may be used to give starting instructions to the recipient. When the scripts determine that all the archives have been unpacked, the text specified with this flag is displayed. For example,
    shar -n1 -e9 -t "Now do 'sh ./Configure'" *.c >SHAR
Adds commands to output the following when all the archives have been unpacked:
    You have run all 9 archives.
    Now do 'sh ./Configure'

    The
    makekit(1L)
    program is designed to create such multi-part kits.

The ``-v'' option prints out the current version and exits.

SEE ALSO
echo(1), findsrc(1L), makekit(1L), mkdir(1), sh(1), test(1), unshar(1L), wc(1).