Man page - borg2-diff(1)

Packages contains this manual

Manual

BORG-DIFF

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
arguments
options
Include/Exclude options
EXAMPLES
NOTES
The FORMAT specifier syntax
SEE ALSO
AUTHOR

NAME

borg-diff - Diff contents of two archives

SYNOPSIS

borg [common options] diff [options] ARCHIVE1 ARCHIVE2 [PATH...]

DESCRIPTION

This command finds differences (file contents, metadata) between ARCHIVE1 and ARCHIVE2.

For more help on include/exclude patterns, see the borg_patterns command output.

OPTIONS

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

arguments

ARCHIVE1

ARCHIVE1 name

ARCHIVE2

ARCHIVE2 name

PATH

paths of items inside the archives to compare; patterns are supported

options

--numeric-ids

only consider numeric user and group identifiers

--same-chunker-params

Override check of chunker parameters.

--sort

Sort the output lines by file path.

--format FORMAT

specify format for differences between archives (default: "{change} {path}{NL}")

--json-lines

Format output as JSON Lines.

--content-only

Only compare differences in content (exclude metadata differences)

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

EXAMPLES

$ borg diff archive1 archive2
+17 B -5 B [-rw-r--r-- -> -rwxr-xr-x] file1
+135 B -252 B file2
added 0 B file4
removed 0 B file3

$ borg diff archive1 archive2
{"path": "file1", "changes": [{"type": "modified", "added": 17, "removed": 5}, {"type": "mode", "old_mode": "-rw-r--r--", "new_mode": "-rwxr-xr-x"}]}
{"path": "file2", "changes": [{"type": "modified", "added": 135, "removed": 252}]}
{"path": "file4", "changes": [{"type": "added", "size": 0}]}
{"path": "file3", "changes": [{"type": "removed", "size": 0}]}

NOTES

The FORMAT specifier syntax

The --format option uses python's format string syntax <https://docs.python.org/3.9/library/string.html#formatstrings> .

Examples:

$ borg diff --format '{content:30} {path}{NL}' ArchiveFoo ArchiveBar
modified: +4.1 kB -1.0 kB file-diff
...

# {VAR:<NUMBER} - pad to NUMBER columns left-aligned.
# {VAR:>NUMBER} - pad to NUMBER columns right-aligned.
$ borg diff --format '{content:>30} {path}{NL}' ArchiveFoo ArchiveBar
modified: +4.1 kB -1.0 kB file-diff
...

The following keys are always available:

NEWLINE: OS dependent line separator

NL: alias of NEWLINE

NUL: NUL character for creating print0 / xargs -0 like output

SPACE: space character

TAB: tab character

CR: carriage return character

LF: line feed character

Keys available only when showing differences between archives:

path: archived file path

change: all available changes

content: file content change

mode: file mode change

type: file type change

owner: file owner (user/group) change

group: file group change

user: file user change

link: file link change

directory: file directory change

blkdev: file block device change

chrdev: file character device change

fifo: file fifo change

mtime: file modification time change

ctime: file change time change

isomtime: file modification time change (ISO 8601)

isoctime: file creation time change (ISO 8601)

SEE ALSO

borg-common(1)

AUTHOR

The Borg Collective