50

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..

thanks

2

9 Answers 9

67

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.

4
  • 14
    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. Nov 11, 2010 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, 2010 at 1:36
  • 3
    what about du -cs * | sort -n for an overview of which directory is bigger?
    – lorenzog
    Jan 7, 2013 at 15:03
  • I prefer: du -ch | sort -nr | head -10
    – Sklavit
    Mar 12, 2018 at 11:32
69

My favorite tool for this task is ncdu.

ncdu example screen

3
  • 6
    Nice. It works pretty much the way I'd do it by hand (with du | sort), but with WAY less typing. Nov 12, 2010 at 4:19
  • 1
    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, 2018 at 13:20
  • never knew about this tool. this is perfect thank you
    – vampiire
    Dec 21, 2021 at 6:32
6

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.

1
  • cool, but I only have shell access on my VPS (low RAM)
    – aneuryzm
    Nov 11, 2010 at 22:21
3

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 /
0

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

0

Something like

sudo du / | sort -n

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

1
  • 2
    Define quick? In my experience this usually takes at least 5-10 minutes.
    – James L
    Nov 11, 2010 at 22:25
0

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

0

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.

0

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.

http://sd.wareonearth.com/~phil/xdu/

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.