Reclaiming disk space from cargo's target/ directories

You never really appreciate disk space until it’s all gone. This morning I noticed that my laptop had come perilously close to exhausting all its available disk space. Oops! Normally I would prune some Docker images with docker system prune -f but this time around I couldn’t blame Docker, the wasted space was due to cargo, critical part of the Rust development toolchain.

When cargo does anything within a project directory, it will store all it’s working state (dependencies, etc), inside of the ./target/ directory. The more projects you work on, the more target/ directories you will accrue, each taking up tens or hundreds of megabytes of disk.

I have adopted cargo-sweep to help grapple with the sprawling disk utilization of my local Rust projects. cargo sweep can be run on a per-project basis or recursively for a file system subtree with -r. In my case, cron is going to make sure that my future free space problems will not be cargo’s fault!

15 1 * * * ~/.cargo/bin/cargo sweep -r -t 30 ~/source