How to determine where biggest files/directories on my system are stored?

I was wondering how do you know where the largest files in my system are stored.

For example---

Disk Space Used: 1GB Java: 500MB Java Percentage: 50% maybe represented in a pie chart. Maybe?

I know this maybe a feature overkill. I sometimes forget having stored things and wonder why my disk is so full.

So basically a command that will allow me to run on the file system and provide me with information on disk space used.

Please and thank you.


Solution 1:

The Disk Usage Analyzer is available under Ubuntu > Accessories > Disk Usage Analyzer. It provides you with a snazzy pie graph showing what files and folders take up the most space:

enter image description here

The documentation on it is a little sparse, but you can find more information on the Ubuntu wiki, and the project page.

If you're interested in using the command line, there's du which is described here.

Solution 2:

Unless it changed recently, baobab only shows directories; check out kdirstat for an alternative that actually shows files, coloured by type.

A commandline alternative is

du -a | sort -nr | head

Solution 3:

The solution that @UncleZeiv proposed is not working when there is really no more space left, since sort is using the /tmp folder when there are multiple lines to sort.

du -a | sort -nr | head
sort: write failed: /tmp/sortuCYq8E: No space left on device

An alternative is a combination of the answer from @UncleZeiv and @Yoav Weiss, plus adding another path for the temporary location:

sudo du -a | sort -nr -T /media/usb-key

Finally, my preferred solution will be a human-readable one that doesn't depend on temp folder and list root directory (/):

sudo du -ah --max-depth=1  / | sort -hr

Solution 4:

A useful command to that helps in cases you need to determine that for specific directories from the command line:

du --max-depth=1 -x -h

It gives you a list of the first depth directories and their sizes

-x limits the analysis to one file system

-h shows human readable k/M/Gbytes (this prevents you from sorting the output though)