| BORG-DIFF(1) | borg backup tool | BORG-DIFF(1) | 
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¶
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¶
AUTHOR¶
The Borg Collective
| 2025-08-04 |