How to Analyze and Clean Disk Space on macOS Using `ncdu` and `df`
# 🧹 How to Analyze and Clean Disk Space on macOS Using `ncdu` and `df`
Keeping your macOS system clean and your disk space under control is essential — especially when you're building large projects like Xcode apps or using environments like Node.js. In this post, you'll learn how to inspect, analyze, and free up space using `ncdu` and `df`.
## 📦 Step 1: Install `ncdu` (Disk Usage Analyzer)
`ncdu` (NCurses Disk Usage) is a fast, interactive command-line tool for analyzing disk usage. First, install it via Homebrew:
```bashbrew install ncdu🔍 Step 2: Scan Your Home Directory
Section titled “🔍 Step 2: Scan Your Home Directory”Use ncdu to recursively analyze your home directory:
ncdu ~This will launch an interactive UI where you can:
- Browse hidden files and folders
- Sort by size
- Delete files interactively (press
d) - Navigate folders (
Enter,qto quit)
💽 Step 3: Check Overall Disk Space with df
Section titled “💽 Step 3: Check Overall Disk Space with df”Use the built-in df command to check how much disk space is left:
df -h ~Sample Output:
Filesystem Size Used Avail Capacity Mounted on/dev/disk3s1s1 500G 390G 110G 78% /This tells you:
- Total size of your disk
- How much is used
- How much is available
🧹 Step 4: Clean Common Large Directories
Section titled “🧹 Step 4: Clean Common Large Directories”1. DerivedData (Xcode)
Section titled “1. DerivedData (Xcode)”Used for build cache — safe to delete:
rm -rf ~/Library/Developer/Xcode/DerivedData/*2. Archives (Xcode)
Section titled “2. Archives (Xcode)”Stores archived .xcarchive files. Delete only if you no longer need them for distribution or symbolication:
rm -rf ~/Library/Developer/Xcode/Archives/*3. Trash
Section titled “3. Trash”rm -rf ~/.Trash/*4. .npm, .cache, etc.
Section titled “4. .npm, .cache, etc.”rm -rf ~/.npm/*rm -rf ~/.cache/*5. Find and Remove All node_modules
Section titled “5. Find and Remove All node_modules”If you have multiple JavaScript projects (e.g., under hasdev/*), you can remove all node_modules like this:
find hasdev -type d -name node_modules -exec rm -rf {} +🧠 Pro Tip: Combined Overview
Section titled “🧠 Pro Tip: Combined Overview”Want a quick view of both disk usage and available space?
df -h ~ncdu ~✅ Summary
Section titled “✅ Summary”| Tool | Purpose | Usage Example |
|---|---|---|
ncdu | Analyze disk usage interactively | ncdu ~ |
df | View total and free disk space | df -h ~ |
find | Search and clean large dirs | find . -name node_modules |
Using ncdu + df gives you a powerful combo for managing disk usage without any bloated GUI tools. Clean regularly, and automate the tedious bits to keep your macOS development environment lean and fast.