When it comes to tidying up your hard drive on a Linux system, either to free up space or to become more organized, it’s helpful to find the largest directories on the system. In other words, the directories that are consuming the most storage space.
In this tutorial, we will show you how to find the largest directories on Linux, through both command line via the
du command, and through a GUI application as well.
In this tutorial you will learn:
- How to find largest directories with
- How to find largest directories with Disk Usage Analyzer GUI utility
|Category||Requirements, Conventions or Software Version Used|
|System||Any Linux distro|
|Software||du, Disk Usage Analyzer|
|Other||Privileged access to your Linux system as root or via the
# – requires given linux commands to be executed with root privileges either directly as a root user or by use of
$ – requires given linux commands to be executed as a regular non-privileged user
How to find largest directories via command line
The df and du command line utilities are the two best tools we have to measure disk consumption on Linux. For finding the largest directories on Linux, the
ducommand is particularly useful.
du without any extra options, keep in mind that it will check the total disk usage of each subdirectory, individually. Depending on how deep your folder structure goes, this could be a massive amount of directories, and your terminal will be spammed with a lot of output.
In the following example, we run
du on a directory full of Linux ISO files, but it’s only one directory deep. We’ll append the
-h (human readable) option so it’s easier to see what kind of space these directories are consuming.
$ du -h 11G ./AlmaLinux 671M ./Arch Linux 14G ./CentOS 349M ./Debian 1.9G ./Fedora 415M ./Gentoo 6.5G ./Kali Linux 9.4G ./Ubuntu 44G .
We can see that the AlmaLinux folder is using 11 GB, and the Debian folder is only using 349 MB. The total of all these folders is 44 GB, as indicated in the last line.
Let’s see what happens if we have a deeper folder structure.
$ du -h 671M ./Arch Linux 6.5G ./Debian-based/Kali Linux 9.4G ./Debian-based/Ubuntu 17G ./Debian-based 415M ./Gentoo 11G ./RHEL-based/AlmaLinux 14G ./RHEL-based/CentOS 1.9G ./RHEL-based/Fedora 27G ./RHEL-based 44G .
As you can see, the “Debian-based” and “RHEL-based” directories have two and three subdirectories, respectively. This gives us a rather granular look at how much space each subdirectory is using. If you have a deep structure, we can use the
--max-depth=N flag to tell
du how many subdirectories deep it should traverse.
$ du -h --max-depth=1 671M ./Arch Linux 17G ./Debian-based 415M ./Gentoo 27G ./RHEL-based 44G .
To sort these directories by size, making it easy to identify which ones are consuming the most space, we can pipe our
du command to the
sort utility. If you’re using the
-h option on
du, make sure you also use it on
$ du -h | sort -h 415M ./Gentoo 671M ./Arch Linux 1.9G ./RHEL-based/Fedora 6.5G ./Debian-based/Kali Linux 9.4G ./Debian-based/Ubuntu 11G ./RHEL-based/AlmaLinux 14G ./RHEL-based/CentOS 17G ./Debian-based 27G ./RHEL-based 44G . OR: $ du -h --max-depth=1 | sort -h 415M ./Gentoo 671M ./Arch Linux 17G ./Debian-based 27G ./RHEL-based 44G .
In these examples, we’ve been running
dufrom our present working directory. Keep in mind that you can specify any directory with the command – you don’t have to actually be in the directory you’re checking.
$ du -h /home/linuxconfig
If you try to run
du on your root directory to see storage space across the entire disk, keep in mind that you’ll need to execute that command with root privileges and you should redirect standard error to
/dev/null since you’ll get a lot of “permission denied” spam in your output.
$ sudo du -h --max-depth=1 / | sort -h 2> /dev/null
sort commands, along with the options we’ve gone over, should be enough to help you find the largest directories on your system. For more help, you may also want to see our guide on finding the largest files on Linux by using the find command.
How to find largest directories via GUI
Sometimes, it’s easier to visualize disk usage if we use a GUI utility. One such application is called Disk Usage Analyzer, but it may not be installed by default on your Linux distro. Use the appropriate command below to install it with your system’s package manager.
To install Disk Usage Analyzer on Ubuntu, Debian, and Linux Mint:
$ sudo apt install baobab
To install Disk Usage Analyzer on Fedora, CentOS, AlmaLinux, and Red Hat:
$ sudo dnf install baobab
To install Disk Usage Analyzer on Arch Linux and Manjaro:
$ sudo pacman -S baobab
After it’s installed, search for and open the application.
When the program opens, it will ask if you want it to scan the home directory or an entire disk. You can also click the options menu (three stacked lines) for the ability to scan a particular folder.
Make your selection and the utility will begin scanning for files. Once it finishes scanning for content, it’ll give you a full readout of how your hard disk space is being distributed to various directories on your system. There’s also a graphical representation which you can move your mouse cursor over to get an even better idea. It lists directories by size, so you can quickly determine what’s chewing up the most disk space.
In this tutorial, we saw how to find the largest directories on Linux through command line examples and a GUI application. Both the GUI and the command line are able to give us a quick summary of storage usage, or detailed breakdowns of how storage space is being used across various directories on our system.