How to Use the tmutil compare Command in macOS Terminal to Identify File and Snapshot Changes Between Backups

When investigating unexpected backup volume exhaustion, diagnosing corrupted configuration states, or auditing system modifications over time, Mac power users and system engineers frequently need to determine precisely which files changed between Time Machine backup points. While the Time Machine graphical interface lets you restore past versions of individual folders, it cannot calculate differential reports across thousands of system files. The native tmutil compare command provides granular comparison capabilities directly in the Terminal.

Command Syntax and Parameters

The compare verb in the tmutil utility evaluates two targets—such as a past backup snapshot and the current live filesystem, or two distinct historical backup points:

tmutil compare [options] [backup_path_1] [backup_path_2]
Parameter Switch Comparison Behaviour Ideal Scenario
-s Summarises total size differences without printing individual file paths. Quickly discovering how many gigabytes were added or deleted.
-n Restricts comparison strictly to new, modified, or deleted files (ignoring metadata). Focusing exclusively on content modifications.
-m Includes metadata changes (POSIX permissions, extended attributes, flags). Security auditing and troubleshooting access control list (ACL) shifts.
-c Compares creation dates rather than modification dates. Tracking newly imported media and newly generated datasets.

Step-by-Step Differential Auditing

  1. Locate Backup Snapshot Identifiers: List available Time Machine backups and snapshots mounted on your system:
    tmutil listbackups
    Note the full paths of the snapshots you wish to inspect (e.g. /Volumes/BackupDrive/Backups.backupdb/MacBook/2026-10-10-120000).
  2. Compare the Most Recent Backup with Current Live Disk: Run tmutil compare without arguments to compare the latest backup against your live system state:
    tmutil compare
    Terminal outputs change records prefixed with status indicator symbols:
    • + Indicates a newly created file not present in the backup.
    • - Indicates a file deleted since the last backup.
    • ! Indicates a modified file where file size or timestamps shifted.
  3. Generate an Overall Change Summary: Instead of streaming thousands of modified cache files, request a high-level summary:
    tmutil compare -s
    Example summary output:
    Added:         4.12 GB
    Removed:       1.08 GB
    Changed:       850.4 MB
  4. Compare Two Historical Snapshots Directly: To identify why a specific backup consumed an unusual amount of storage on an external drive, compare two specific past directories:
    tmutil compare "/Volumes/Backup/2026-09-01-090000" "/Volumes/Backup/2026-10-01-090000"

Filtering Terminal Output for Fast Analysis

Combine tmutil compare with shell pipelines to isolate unusually large changes, such as virtual machine images or database files:

tmutil compare | grep -E "^!" | awk '$2 > 1000000000 {print $0}'

This command flags any single modified file whose delta exceeds 1 GB, helping you quickly identify candidates for Time Machine exclusion lists.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.