---
name: "shar"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "openbsd", "macos"]
url: "https://new.carta.tech/shar"
---

# shar(1)

create a shell archive of files

## NAME

**shar** – create a shell archive of files

## SYNOPSIS

**shar** *file ...*

## DESCRIPTION

**shar** writes an [sh(1)](/sh/1.md) 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)](/find/1.md) utility does this correctly).

**shar** is normally used for distributing files by [ftp(1)](/ftp/1.md) or [mail(1)](/mail/1.md).

## EXAMPLES

To create a shell archive of the program [ls(1)](/ls/1.md) 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)](/compress/1.md), [mail(1)](/mail/1.md), [tar(1)](/tar/1.md), [uuencode(1)](/uuencode/1.md)

## 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)](/sh/1.md). Archives produced using this implementation of **shar** may be easily examined with the command:

```
$ egrep -v '^[X#]' shar.file
```
