BORG-EXTRACT(1)

NAME
borg-extract - Extract archive contents

SYNOPSIS

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

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 PATHs as arguments. The file selection can further be restricted by using the --exclude option.

See the output of the "borg help patterns" command for more help on exclude patterns.

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

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

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

OPTIONS

See borg-common(1) for common options of Borg commands.

  arguments

ARCHIVE
    archive to extract

PATH
    paths to extract; patterns are supported

  optional arguments

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

-n, --dry-run
    do not actually change any files

--numeric-owner
    only obey numeric user and group identifiers

--nobsdflags
    do not extract/set bsdflags (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 output sparse file from all-zero chunks

  Exclusion options

-e PATTERN, --exclude PATTERN
    exclude paths matching PATTERN

--exclude-from EXCLUDEFILE
    read exclude patterns from EXCLUDEFILE, one per line

--pattern PATTERN
    experimental: include/exclude paths matching PATTERN

--patterns-from PATTERNFILE
    experimental: 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

# Extract entire archive
$ borg extract /path/to/repo::my-files
# Extract entire archive and list files while processing
$ borg extract --list /path/to/repo::my-files
# Verify whether an archive could be successfully extracted, but do not write files to disk
$ borg extract --dry-run /path/to/repo::my-files
# Extract the "src" directory
$ borg extract /path/to/repo::my-files home/USERNAME/src
# Extract the "src" directory but exclude object files
$ borg extract /path/to/repo::my-files home/USERNAME/src --exclude '*.o'
# Restore a raw device (must not be active/in use/mounted at that time)
$ borg extract --stdout /path/to/repo::my-sdx | dd of=/dev/sdx bs=10M

SEE ALSO

borg-common(1), borg-mount(1)

AUTHOR
The Borg Collective