How to delete all local TimeMachine snapshots
I have automatic backup enabled and local TimeMachine snapshots take a large amount of disk space. This space is listed as purgeable in disk info, but cannot be actually used until the system decides to free it up. How can I force TimeMachine to delete those snapshots?
In Terminal, execute this small script:
for d in $(tmutil listlocalsnapshotdates | grep "-"); do sudo tmutil deletelocalsnapshots $d; done
The script lists all snaphosts and deletes all of them in a loop.
If you’re not running low on disk space (5 GB free) - just let this space be allocated as there is no downside to waiting to purge files until you need space.
That being said, if you decide to preemptively delete backups, I prefer to tell the system to free up space. If you know you have 50 GB amount to free, change the 5 below to 50 and then the system will iterate across all the local snapshots and prune them in the order defined by the system.
tmutil thinlocalsnapshots / $(echo "5 * 1000000000" | bc) 2
The only iteration I would do is to see how many APFS volumes you have and then perhaps thin any that are mounted.
Here’s a nice thread explaining the urgency - 2 works well for my needs, but the manual page explains there are 4 levels of urgency, so if you have specific needs, watch the IO and performance during thinning and experiment with smaller snapshots to thin.
- How to thin your local Time Machine Snapshots on macOS High Sierra
I found by accident that opening the "Storage administration" windows (Cmd-U) in "System Information" released the local time machine snapshots making the space available.
I do not know if this is an officially supported way.
Step 1:
In Terminal, enter the following command to list all backup snapshots:
tmutil listlocalsnapshots /
You will get a list of all the snapshots in the root directory (/
).
Step 2:
Delete each snapshot by entering the following command + date of the corresponding snapshot:
sudo tmutil deletelocalsnapshots <snapshot_date>
Example:
sudo tmutil deletelocalsnapshots 2020-09-26-143409
Bonus Tip:
Remember you can always get help with a command in terminal by entering the root command -h
or -help
.
Enter tmutil -help
to see all the Time Machine Utility commands, and usage instructions.