shar(1)

shar1

Create a shell archive of files

Usage

shar file ...

Overview

shar writes an 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).

shar 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

Releases

61 releases since OpenBSD 2.1; the text changed 8 times.

  1. 2.1–2.3
  2. 2.4–2.5
  3. 2.6
  4. 2.7–3.0
  5. 3.1–3.3
  6. 3.4–4.1
  7. 4.2–4.3
  8. 4.4–4.9
  9. 5.0–8.0

History

The shar command appeared in 4.4BSD.

Bugs

shar makes no provisions for special types of files or files containing magic characters.

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 -v '^[X#]' shar.file

From man 8.0-current-20261101 in OpenBSD 8.0-current (2026-11-01). Parsed by carta from the page's mdoc source.