Is there a way in Unix to see the biggest directories on disk ?

I need to know why I'm almost done with the space on the server, and I dunno where most of the space is used..



Try: du --max-depth=7 /* | sort -n - it won't just tell you directories, and there will be duplicates, but it will list everything 7 levels deep and sort them by size order.

| improve this answer | |
  • 13
    7 levels all at once might be overwhelming. I would start with --max-depth=0 (or rather, use --summarize/-s), and then drill into the largest directories by hand. – Steven Monday Nov 11 '10 at 23:31
  • Good point, just chose that number as that's how far I typically end up going before I find something useful. – James L Nov 13 '10 at 1:36
  • 3
    what about du -cs * | sort -n for an overview of which directory is bigger? – lorenzog Jan 7 '13 at 15:03
  • I prefer: du -ch | sort -nr | head -10 – Sklavit Mar 12 '18 at 11:32

My favorite tool for this task is ncdu.

ncdu example screen

| improve this answer | |
  • 4
    Nice. It works pretty much the way I'd do it by hand (with du | sort), but with WAY less typing. – Steven Monday Nov 12 '10 at 4:19
  • This is much better. just install ncdu and type ncdu command on the directory you want to analyze, it works very fast. – Jamol Oct 7 '18 at 13:20

I suggest you to use baobab, which will give you a graphical overview of your disk usage. It can also be used for remote folder (through ssh, ftp,...) to scan the disk usage on a remote server for instance.

Edit: If you would like to investigate the disk usage directly on the server with your shell access and not remotely, and you would like a tool more convenient than du, you can also have a try with durep which will generate a report of the disk usage with bar graphs.

| improve this answer | |
  • cool, but I only have shell access on my VPS (low RAM) – aneuryzm Nov 11 '10 at 22:21

I usually use something like this:

du -ch / | sort

You can apply a depth restriction using --max-depth= if you don't want to see past a certain level from your target, like so:

du -ch --max-depth=4 /
| improve this answer | |

Try df & du -sh /. And recursively du -sh. Not the best solution though.

| improve this answer | |

Something like

sudo du / | sort -n

Will give you a quick answer (last entries are largest files/directories)

| improve this answer | |
  • 2
    Define quick? In my experience this usually takes at least 5-10 minutes. – James L Nov 11 '10 at 22:25

# cd /; du -shb | sort -nr > /root/home/disk-space-report.txt

| improve this answer | |

I always use syntax like

du -sm --max-depth=4 /path/i/want/to/drill | sort -nr | head -n 20.

max-depth and head parameters can vary, of course, but the above would list 20 biggest directories.

| improve this answer | |

I'm regularly running du -dak > du-dak.out at the top of each file system. Then, I can get a graphical display with xdu < du-dak.out. This can be done remotely after transferring the du-dak.out file over the network should you only have text access.


| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.