From time to time, I need to clean off the contents of a hard drive on one of my Macs—most often this is the case prior to selling the mac or giving it to someone else. Instead of just formatting the drive, installing macOS, then handing it off, I want to make sure all the contents I had stored on it are irrecoverably erased (I sometimes work on projects under NDA, and I also like having some semblance of privacy in general).
Disk Utility used to expose this functionality in the UI, which made this a very simple operation. But it seems to have gone missing in recent macOS versions. Luckily, it's still available on the command line (via Terminal.app):
diskutil secureErase freespace 0 "/Volumes/Macintosh HD"
This command would write zeroes on the entire 'Macintosh HD' drive. You can see a list of all the drives connected to your Mac with
ls /Volumes. There are a few other common options available (instead of
0) if you run
man diskutil and scroll down to the
secureErase section. I most commonly use: