Scroll to navigation

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

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

options

only consider numeric user and group identifiers
Override check of chunker parameters.
Sort the output lines by file path.
specify format for differences between archives (default: "{change} {path}{NL}")
Format output as JSON Lines.
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.

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

2024-02-28