---
name: "borg-export-tar"
section: "1"
platform: "linux"
package: "borg"
version: "1.4.5-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/borg-export-tar"
---

# borg-export-tar(1)

Export archive contents as a tarball

## Name

borg-export-tar - Export archive contents as a tarball

## SYNOPSIS

borg \[common options\] export-tar \[options\] ARCHIVE FILE \[PATH...\]

## DESCRIPTION

This command creates a tarball from an archive.

When giving '-' as the output FILE, Borg will write a tar stream to standard output.

By default (**--tar-filter=auto**) Borg will detect whether the FILE should be compressed based on its file extension and pipe the tarball through an appropriate filter before writing it to FILE:

- •

  .tar.gz or .tgz: gzip

- •

  .tar.bz2 or .tbz: bzip2

- •

  .tar.xz or .txz: xz

- •

  .tar.zstd or .tar.zst: zstd

- •

  .tar.lz4: lz4

Alternatively, a **--tar-filter** program may be explicitly specified. It should read the uncompressed tar stream from stdin and write a compressed/filtered tar stream to stdout.

The generated tarball uses the GNU tar format.

export-tar is a lossy conversion: BSD flags, ACLs, extended attributes (xattrs), atime and ctime are not exported. Timestamp resolution is limited to whole seconds, not the nanosecond resolution otherwise supported by Borg.

A **--sparse** option (as found in **borg extract**) is not supported.

By default the entire archive is extracted but a subset of files and directories can be selected by passing a list of **PATHs** as arguments. The file selection can further be restricted by using the **--exclude** option.

For more help on include/exclude patterns, see the *borg\_patterns* command output.

**--progress** can be slower than no progress display, since it makes one additional pass over the archive metadata.

## OPTIONS

See *[borg-common(1)](/borg-common/1.md)* for common options of Borg commands.

### arguments

- **ARCHIVE**

  archive to export

- **FILE**

  output tar file. "-" to write to stdout instead.

- **PATH**

  paths to extract; patterns are supported

### options

- **--tar-filter**

  filter program to pipe data through

- **--list**

  output verbose list of items (files, dirs, ...)

### Include/Exclude options

- **-e** *PATTERN,* **--exclude** *PATTERN*

  exclude paths matching PATTERN

- **--exclude-from** *EXCLUDEFILE*

  read exclude patterns from EXCLUDEFILE, one per line

- **--pattern** *PATTERN*

  include/exclude paths matching PATTERN

- **--patterns-from** *PATTERNFILE*

  read include/exclude patterns from PATTERNFILE, one per line

- **--strip-components** *NUMBER*

  Remove the specified number of leading path elements. Paths with fewer elements will be silently skipped.

## EXAMPLES

```
# Export as an uncompressed tar.
$ borg export-tar /path/to/repo::Monday Monday.tar
# Exclude some types; compress using gzip.
$ borg export-tar /path/to/repo::Monday Monday.tar.gz --exclude '*.so'
# Use a higher compression level with gzip.
$ borg export-tar --tar-filter="gzip -9" testrepo::linux Monday.tar.gz
# Export a tar, but instead of storing it on disk,
# upload it to a remote site using curl.
$ borg export-tar /path/to/repo::Monday - | curl --data-binary @- https://somewhere/to/POST
# Remote extraction via "tarpipe".
$ borg export-tar /path/to/repo::Monday - | ssh somewhere "cd extracted; tar x"
```

## SEE ALSO

*[borg-common(1)](/borg-common/1.md)*

## Author

The Borg Collective
