Exclude Folders From Time Machine Backups on Mac
Time Machine backs up everything by default — including virtual machine disks, node_modules folders, and caches that change constantly and are trivial to recreate. Excluding them makes backups faster and stretches the same drive into months more history. There's a Settings route and a scriptable Terminal route.
Exclude folders in System Settings
- Open System Settings → General → Time Machine.
- Click Options….
- Under Exclude from Backups, click + and pick the folder — or drag folders straight into the list.
- Click Done.
The estimated size of a full backup, shown in the same sheet, drops as you add exclusions. To undo, select an item in the list and click −. The path is the same on macOS 13 Ventura, 14 Sonoma, and 15 Sequoia.
Exclude from Terminal with tmutil
tmutil supports two kinds of exclusion. A sticky exclusion is attached to the item itself, so it follows the folder if you move or rename it. A path-based exclusion (the -p flag) applies to a fixed path and shows up in the System Settings list; sticky ones don't.
# sticky exclusion — follows the folder if it moves
tmutil addexclusion ~/Projects/scratch
# path-based exclusion — fixed path, visible in System Settings
sudo tmutil addexclusion -p ~/VMs
# check whether something is excluded
tmutil isexcluded ~/Projects/scratch
# undo either kind
tmutil removeexclusion ~/Projects/scratch
sudo tmutil removeexclusion -p ~/VMs
Sticky exclusions are ideal for scripting — a build tool can mark its own output folder excluded the moment it creates it, and the exclusion travels with the folder. Because sticky exclusions are invisible in System Settings, keep a note of what you've excluded this way, or check suspect folders with tmutil isexcluded before assuming they're backed up.
Worth knowing: macOS already excludes a fair amount on its own — swap files and sleepimage, Spotlight indexes, the Trash, and many system caches never make it into a backup. You don't need to hunt those down yourself; focus your exclusions on the big user-level folders macOS can't know are disposable.
Find the space hogs first
Exclude by evidence, not by guesswork. Open your home folder in the Finder, switch to list view, and choose View → Show View Options, then tick Calculate all sizes — sort by size and the biggest folders float to the top. Anything both large and frequently changing is a prime exclusion candidate; anything large but static (a photo archive, say) costs backup space only once and is usually worth keeping.
Good candidates to exclude
- Virtual machine disks (Parallels, VMware, UTM) — a single-file disk image changes entirely with every use, so each backup copies the whole thing again.
- Developer build output —
node_modules,target,build, DerivedData. All regenerable from source. - Scratch and render folders — video exports, temp downloads, anything you'd delete anyway.
- Downloads — if yours is a landing zone rather than a filing system, it's mostly re-downloadable.
- Folders already backed up elsewhere — a Dropbox or Google Drive folder has its own version history in the cloud. Excluding it is defensible, but remember that cloud sync is not a backup: if you delete a file everywhere by accident, Time Machine would have been your safety net.
Don't exclude your Documents, Desktop, or Photos library to save space — that defeats the point of having backups. Exclude what's cheap to recreate, keep what isn't.
What exclusions don't do
Exclusions apply from the next backup onward — they don't reach back and remove copies already stored on the drive. Old copies of a newly excluded folder linger until Time Machine's normal thinning ages them out, so don't expect the backup drive to free space the moment you add an exclusion. Re-including something works the same way in reverse: remove the exclusion and the folder is picked up fresh on the next backup, with no history for the period it was excluded.
Backup exclusions live in Time Machine's own settings — but for the other 90+ hidden macOS settings, Mainspring gives you labelled, reversible toggles instead of defaults commands.
Try Mainspring free →Signed & notarized by Apple · 1-day free trial · $29 once