Script to delete huge sparsebundle images

Jul 19, '12 07:30:00AM

Contributed by: zpjet

I needed to restart a backup for one of my Macs, which had an 800 GB disk image on my Time Capsule. It turned out to be impossible to delete the disk image - in Finder, it would just not move to the Trash, even after waiting for several hours.

I was looking for advice and most of the suggestions involved reformatting the Time Capsule, but I couldn't do this, as I had other Macs being backed up there.

I looked for a way to do this from the command line. The Time Machine disk image - a sparsebundle, a special type of disk image that can increase in size as needed - is actually a package, which has "bands" inside, many smaller files that are named hexadecimally. In this case, there were thousands of them. So many, that even deleting them from the command line didn't work - commands like rm find limitations in the lengths of lists parsed by recursion or wildcards, so a basic command like rm -f didn't work.

I ended up writing a little script, which removes the files one by one. The biggest trick here is actually the %x switch which changes $i into a hexadecimal number.

You can then either copy and save something like this as a shell script:

for i in {0..1000000}
rm -rv /Volumes/Your Network\ Disk/Your\ Mac.sparsebundle/bands/$(printf "%x" $i)

where you replace Your\ Network\ Disk and Your\ Mac with your details.

Or, you can copy and paste this line into Terminal:

for i in {0..1000000}; do rm -rv
then add a space, then drag and drop the disk image, and then (you might need to remove one space this time) add:

/bands/$(printf "%x" $i); done

Then just watch the bands being deleted, and when the script starts deleting non-existing bands, just kill it with ctrl-X.

With no bands, the sparsebundle gets deleted immediately.

[kirkmc adds: I haven't tested this. My first thought was that this seemed like overkill, but corresponding with the submitter made me realize the extent of the problem. Here is some more information on this limitation.]

Comments (21)

Mac OS X Hints