borg2-diff1
Diff contents of two archives
Usage
borg [common
options]
diff
[options]
ARCHIVE1
ARCHIVE2
[PATH ...]
Overview
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 name |
|---|---|
|
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.
--formatFORMAT-
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
|
exclude paths matching PATTERN |
|---|---|
|
read exclude patterns from EXCLUDEFILE, one per line |
|
include/exclude paths matching PATTERN |
|
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) |
Releases
2 releases since Debian 12 (Bookworm); the text changed 1 time.
--content-only since Debian 13 (Trixie).