---
name: "shar"
section: "1"
platform: "macos"
package: "file_cmds"
version: "479"
release: "macOS 26.5"
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

The **shar** command writes a [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).

The **shar** command 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

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

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