Time Machine Backup Cleanup on External Drives
Safe workflow to stop Time Machine from using a disk, delete Backups.backupdb, clear typical TM metadata directories, and watch disk usage while long deletes run. Replace /Volumes/YourDrive with your volume. If permission or Full Disk Access errors appear first, see External Disk Permissions and Disk Usage.
Disable Time Machine on the Drive
Section titled “Disable Time Machine on the Drive”Before deleting data, remove the volume as a backup target:
- System Settings → General → Time Machine
- Select the backup disk → Remove Disk
- Confirm
Terminal:
tmutil destinationinfo
sudo tmutil removedestination <destination-id>Use the destination identifier from destinationinfo output.
Confirm Time Machine Data on Drive
Section titled “Confirm Time Machine Data on Drive”sudo /bin/ls -lhA /Volumes/YourDrive
sudo du -sh /Volumes/YourDrive/Backups.backupdb
tmutil listbackups /Volumes/YourDrive
duf /Volumes/YourDriveTypical Time Machine paths:
| Path | Role |
|---|---|
Backups.backupdb/ | Main backup store — usually largest |
tmbootpicker.efi | Time Machine boot picker |
.Spotlight-V100/ | Spotlight index |
.fseventsd/ | Filesystem event log |
.DocumentRevisions-V100/ | Document revisions |
.TemporaryItems/ | Temp files |
.Trashes/ | Volume trash |
.disk_label, .VolumeIcon.icns | Cosmetic volume assets |
Monitor Disk Usage in Real Time
Section titled “Monitor Disk Usage in Real Time”Run monitoring in a second terminal while deletion runs in the first.
Install Monitoring Tools
Section titled “Install Monitoring Tools”macOS does not ship watch in the default PATH; install it with Homebrew if needed.
brew install dufbrew install ncdubrew install watchWatch Free Space Every Five Seconds (Recommended)
Section titled “Watch Free Space Every Five Seconds (Recommended)”watch -n 5 --color 'duf'Single volume:
watch -n 5 --color 'duf /Volumes/YourDrive'Watch Disk I/O
Section titled “Watch Disk I/O”iostat -d 2Confirm a Delete Process Is Running
Section titled “Confirm a Delete Process Is Running”ps aux | grep "rm -rf" | grep -v grepWatch Top-Level Backup Folder Shrink
Section titled “Watch Top-Level Backup Folder Shrink”watch -n 10 'sudo du -sh /Volumes/YourDrive/Backups.backupdb 2>/dev/null'Watch Remaining Path Count (Sample Depth)
Section titled “Watch Remaining Path Count (Sample Depth)”watch -n 10 'sudo find /Volumes/YourDrive/Backups.backupdb -maxdepth 2 2>/dev/null | wc -l'sudo lsof -p $(pgrep rm) often shows nothing for rm: it unlinks without keeping files open, so lsof is not a reliable progress signal.
Delete Time Machine Backups
Section titled “Delete Time Machine Backups”Option A: tmutil delete (Recommended)
Section titled “Option A: tmutil delete (Recommended)”Time Machine–aware; handles hard-linked backup chains efficiently:
sudo tmutil delete /Volumes/YourDrive/Backups.backupdbSingle snapshots:
tmutil listbackups /Volumes/YourDrivesudo tmutil delete "/Volumes/YourDrive/Backups.backupdb/MachineName/YYYY-MM-DD-HHMMSS"Option B: rm -rf (Slower)
Section titled “Option B: rm -rf (Slower)”Time Machine uses dense hardlinks; rm -rf can run for hours on multi-TB stores. Prefer tmutil delete unless it fails.
sudo rm -rf /Volumes/YourDrive/Backups.backupdbRemove Remaining Time Machine System Files
Section titled “Remove Remaining Time Machine System Files”After Backups.backupdb is gone:
sudo rm -f /Volumes/YourDrive/tmbootpicker.efi
sudo rm -rf /Volumes/YourDrive/.Spotlight-V100sudo rm -rf /Volumes/YourDrive/.fseventsdsudo rm -rf /Volumes/YourDrive/.DocumentRevisions-V100sudo rm -rf /Volumes/YourDrive/.TemporaryItemssudo rm -rf /Volumes/YourDrive/.TrashesOptional: Remove Cosmetic Volume Files
Section titled “Optional: Remove Cosmetic Volume Files”sudo rm -f /Volumes/YourDrive/.disk_labelsudo rm -f /Volumes/YourDrive/.disk_label_2xsudo rm -f /Volumes/YourDrive/.VolumeIcon.icnsCombined Removal Example
Section titled “Combined Removal Example”sudo rm -rf \ /Volumes/YourDrive/Backups.backupdb \ /Volumes/YourDrive/tmbootpicker.efi \ /Volumes/YourDrive/.Spotlight-V100 \ /Volumes/YourDrive/.fseventsd \ /Volumes/YourDrive/.DocumentRevisions-V100 \ /Volumes/YourDrive/.TemporaryItems \ /Volumes/YourDrive/.Trashes \ /Volumes/YourDrive/.disk_label \ /Volumes/YourDrive/.disk_label_2x \ /Volumes/YourDrive/.VolumeIcon.icnsVerify Cleanup Is Complete
Section titled “Verify Cleanup Is Complete”sudo /bin/ls -lhA /Volumes/YourDrive | grep -i backup
sudo /bin/ls -lhA /Volumes/YourDrive
duf /Volumes/YourDrive
dua i /Volumes/YourDriveYou should see only data you expect, usually owned by your login for personal folders.
Troubleshooting
Section titled “Troubleshooting”rm -rf Is Taking Too Long
Section titled “rm -rf Is Taking Too Long”Stop rm and use tmutil delete:
sudo kill "$(pgrep rm)"sudo tmutil delete /Volumes/YourDrive/Backups.backupdbtmutil delete Says “Not a Time Machine Backup”
Section titled “tmutil delete Says “Not a Time Machine Backup””The volume may no longer be registered as a TM backup. Fall back to:
sudo rm -rf /Volumes/YourDrive/Backups.backupdbPermission Denied on Backups.backupdb
Section titled “Permission Denied on Backups.backupdb”sudo chown -R "$(whoami)" /Volumes/YourDrive/Backups.backupdb 2>/dev/nullsudo rm -rf /Volumes/YourDrive/Backups.backupdbIf errors persist, revisit Full Disk Access and ownership on External Disk Permissions and Disk Usage.
Free Space Not Updating After Deletion
Section titled “Free Space Not Updating After Deletion”Reporting can lag. Try:
sudo diskutil repairVolume /Volumes/YourDriveWant a Completely Clean Slate
Section titled “Want a Completely Clean Slate”Erasing destroys all data on the device. Confirm the correct disk identifier before running diskutil eraseDisk.
diskutil list
sudo diskutil eraseDisk APFS "DriveName" /dev/diskXReplace /dev/diskX with the identifier for the whole external disk, not the wrong volume.
Quick Reference for Monitoring
Section titled “Quick Reference for Monitoring”| Command | Purpose |
|---|---|
watch -n 5 --color 'duf' | Live usage across volumes |
watch -n 5 --color 'duf /Volumes/YourDrive' | Live usage for one volume |
iostat -d 2 | Disk throughput sample |
ps aux + grep "rm -rf" | See whether rm -rf is still running |
top -pid $(pgrep rm) | Resource use for rm (if present) |
dua i /Volumes/YourDrive | Interactive tree of what remains |
Validated on recent macOS releases on Apple Silicon; UI labels follow System Settings wording from Sonoma / Sequoia era.