# borg extract

    borg [common options] extract [options] NAME [PATH...]

positional arguments
| `NAME` | specify the archive name
| `PATH` | paths to extract; patterns are supported
options
| `--list` | output a verbose list of items (files, dirs, …)
| `-s`, `--stats` | print store statistics for the extraction
| `-n`, `--dry-run` | do not actually change any files
| `--numeric-ids` | only use numeric user and group identifiers
| `--noflags` | do not extract/set flags (e.g. NODUMP, IMMUTABLE)
| `--noacls` | do not extract/set ACLs
| `--noxattrs` | do not extract/set xattrs
| `--stdout` | write all extracted data to stdout
| `--sparse` | create holes in the output sparse file from all-zero chunks
| `--continue` | continue a previously interrupted extraction of the same archive
Common options
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.

## Description

This command extracts the contents of an archive.

By default, the entire archive is extracted, but a subset of files and directories can be selected by passing a list of `PATH` arguments. The default interpretation for the paths to extract is pp: which is a literal path-prefix match. If you want to use e.g. a wildcard, you must select a different pattern style such as sh: or fm:. See borg help patterns for more information.

The file selection can be further restricted by using the `--exclude` option. For more help on include/exclude patterns, see the borg help patterns command output.

By using `--dry-run`, you can do all extraction steps except actually writing the output data: reading metadata and data chunks from the repository, checking the hash/HMAC, decrypting, and decompressing.

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

When using `--stats`, borg reports the store statistics (lines prefixed with “Store”) for the extraction: per-operation call counts and timings, the load/store data volumes and throughput, and cache hits/misses. This includes `--dry-run` extractions.

Note

Currently, extract always writes into the current working directory (“.”), so make sure you `cd` to the right place before calling `borg extract`.

When parent directories are not extracted (because of using file/directory selection or any other reason), Borg cannot restore parent directories’ metadata, e.g., owner, group, permissions, etc.

## Examples

    # Extract entire archive
    $ borg extract my-files

    # Extract entire archive and list files while processing
    $ borg extract --list my-files

    # Verify whether an archive could be successfully extracted, but do not write files to disk
    $ borg extract --dry-run my-files

    # Extract the "src" directory
    $ borg extract my-files home/USERNAME/src

    # Extract the "src" directory but exclude object files
    $ borg extract my-files home/USERNAME/src --exclude '*.o'

    # Extract only the C files
    $ borg extract my-files 'sh:home/USERNAME/src/*.c'

    # Restore a raw device (must not be active/in use/mounted at that time)
    $ borg extract --stdout my-sdx | dd of=/dev/sdx bs=10M