MainspringGuides › rsync backups
macOS Guide

Back Up Folders With rsync on Mac

Updated July 2026 · 3 min read

Dragging a folder onto an external drive copies everything, every time. rsync compares source and destination first and copies only what changed — so the first backup takes as long as a Finder copy, and every one after takes seconds. It's built into every Mac. The catch: two of its behaviors regularly surprise people, so learn them before your data depends on it.

The command — dry run first, always

-a (archive) preserves timestamps, permissions, and folder structure; -v lists each file as it goes. --dry-run makes rsync print what it would do without touching anything:

# preview: nothing is copied yet
rsync -av --dry-run ~/Documents/ /Volumes/Backup/Documents/

# looks right? run it for real
rsync -av ~/Documents/ /Volumes/Backup/Documents/

Run the real command again tomorrow and it finishes almost instantly, transferring only new and modified files. To skip clutter, add excludes: --exclude '.DS_Store' --exclude 'node_modules'.

For big first-time copies, add -P: it shows per-file progress so you can tell a stalled transfer from a slow one, and it lets an interrupted copy resume where it stopped instead of starting over. If your exclude list grows past two or three patterns, move it into a plain text file — one pattern per line — and point rsync at it with --exclude-from followed by the file's path.

The trailing slash decides what gets copied

This is rsync's most famous trap. A slash after the source means "the contents of this folder"; no slash means "the folder itself":

# contents of Documents go INTO /Volumes/Backup/Documents
rsync -av ~/Documents/ /Volumes/Backup/Documents/

# creates /Volumes/Backup/Documents/Documents — nested one level deeper
rsync -av ~/Documents /Volumes/Backup/Documents/

Neither is wrong — they're different requests. Pick one convention (source with slash, destination with slash) and keep it, and your dry run will confirm the layout before anything moves.

The destination side is more forgiving: rsync creates the final folder in the path if it doesn't exist yet, but not missing folders above it. If you're laying out a fresh structure on a new drive, build the parent folders first with mkdir -p, then sync into them.

--delete makes a true mirror — and can destroy data

By default rsync only adds and updates; files you deleted from the source stay on the backup forever. --delete removes them from the destination too, keeping an exact mirror:

# ALWAYS preview a --delete run first
rsync -av --delete --dry-run ~/Documents/ /Volumes/Backup/Documents/

# then, and only then
rsync -av --delete ~/Documents/ /Volumes/Backup/Documents/

Understand what you're signing up for: files rsync deletes bypass the Trash, so there is no undo. Swap source and destination by accident with --delete on, and rsync will happily "mirror" your empty drive over your originals. The dry run is your only safety net — make it a reflex, never optional.

Version notes and permissions

macOS Ventura and Sonoma ship an old rsync (2.6.9, from 2006) — dated, but fine for local folder backups; all flags above work. On macOS Sequoia, Apple swapped in openrsync, which also supports these flags; check what you have with rsync --version. If rsync prints "Operation not permitted" reading Documents or Desktop, grant Terminal Full Disk Access under System SettingsPrivacy & SecurityFull Disk Access (add Terminal, toggle on, relaunch Terminal — and toggle it back off whenever you like).

The destination drive's format matters more than the rsync version. A drive formatted APFS or Mac OS Extended preserves everything -a promises; exFAT and FAT32 can't store macOS ownership or full permission data, so expect harmless warnings and less faithful metadata there. rsync also works across a network: rsync -av ~/Documents/ user@othermac.local:Backups/ syncs over SSH with the same flags, provided Remote Login is switched on for the other Mac under System Settings → General → Sharing.

Reversible by design

Like rsync's dry-run habit, Mainspring never makes a change you can't take back: 90+ hidden macOS settings as labelled toggles, each with a one-click undo.

Try Mainspring free →

Signed & notarized by Apple · 1-day free trial · $29 once

rsync complements Time Machine, not replaces it

rsync gives you a plain, browsable copy of chosen folders; Time Machine gives you versioned history of everything. Run both — rsync for the folders you'd grab in a fire, Time Machine for the rest. If your backup drive is filling up, see how to exclude folders from Time Machine.