How to Find Most Used Disk Space Directories and Files in Linux

New to Linux commands? Our 100+ Essential Linux Commands course covers everything you used in this guide and a lot more with real examples and explanations.

As a Linux administrator, you must periodically check which files and folders are consuming more disk space, because it is very necessary to find unnecessary junk and free it up from your hard disk.

In this article, you will learn how to find the largest files and directories consuming disk space in Linux using the du, find, and ncdu commands with examples.

If you want to learn more about these commands, then head over to the following articles.

Find Largest Directories in Linux Using du Command

Run the following command to find out the top 5 biggest directories under /home partition.

du -a /home | sort -n -r | head -n 5
Find Largest Directories in Linux
Find Largest Directories in Linux

If you want to display the biggest directories in the current working directory, run:

du -a | sort -n -r | head -n 5
Find Biggest Directories Only
Find the Biggest Directories Only

Let us break down the command and see what each parameter says.

  • du command: Estimate file space usage.
  • a : Displays all files and folders.
  • sort command : Sort lines of text files.
  • -n : Compare according to string numerical value.
  • -r : Reverse the result of comparisons.
  • head : Output the first part of the files.
  • -n : Print the first ‘n’ lines. (In our case, we displayed the first 5 lines).

Display Disk Usage in Human-Readable Format (MB, GB)

Some of you would like to display the above result in a human-readable format. i.e., you might want to display the largest files in KB, MB, or GB.

du -hs * | sort -rh | head -5
Find Top Directories Sizes in Linux
Find Top Directories’ Sizes in Linux

The above command will show the top directories, which are eating up more disk space. If you feel that some directories are not important, you can simply delete a few sub-directories or delete the entire folder to free up some space.

Find Top Directories and Subdirectories by Size

To display the largest folders/files, including the sub-directories, run:

du -Sh | sort -rh | head -5
Find Largest Folder and Sub directories
Find the Largest Folder and Subdirectories

Find out the meaning of each option using the above command:

  • du command: Estimate file space usage.
  • -h : Print sizes in human-readable format (e.g., 10MB).
  • -S : Do not include the size of subdirectories.
  • -s : Display only a total for each argument.
  • sort command : sort lines of text files.
  • -r : Reverse the result of comparisons.
  • -h : Compare human-readable numbers (e.g., 2K, 1G).
  • head : Output the first part of the files.

Find Largest Files in Linux Using find Command

If you want to display the biggest file sizes only, then run the following command:

find -type f -exec du -Sh {} + | sort -rh | head -n 5
Find Top File Sizes in Linux
Find Top File Sizes in Linux

To find the largest files in a particular location, just include the path beside the find command:

find /home/tecmint/Downloads/ -type f -exec du -Sh {} + | sort -rh | head -n 5
OR
find /home/tecmint/Downloads/ -type f -printf "%s %p\n" | sort -rn | head -n 5
Find Top File Size in Specific Location
Find the Top File Size in a Specific Location

The above command will display the largest file from /home/tecmint/Downloads directory.

Find Files Larger Than a Specific Size in Linux

Sometimes you don’t need to see all files ranked by size, but you just want to identify files that exceed a certain threshold, such as files larger than 100MB or 1GB.

find /home -type f -size +100M -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

To find files larger than 1GB:

find /home -type f -size +1G -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

You can also search for files within a size range, for example, to find files between 10MB and 100MB:

find /home -type f -size +10M -size -100M -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

Exclude Directories from Disk Usage Search

When analyzing disk usage, you might want to exclude certain directories like /proc, /sys, or mounted external drives to get more accurate results.

du -h --exclude=/proc --exclude=/sys --exclude=/dev / | sort -rh | head -n 10

To exclude multiple directories when using the find command:

find /home -type f -not -path "*/node_modules/*" -not -path "*/.cache/*" -exec du -Sh {} + | sort -rh | head -n 10

This is particularly useful when dealing with development directories where node_modules or cache folders can skew your results.

Find Old Large Files That Haven’t Been Accessed

To identify large files that haven’t been accessed in a long time (potential candidates for archival or deletion), combine size and time parameters:

find /home -type f -size +50M -atime +180 -exec ls -lh {} \;

The above command finds files larger than 50MB that haven’t been accessed in the last 180 days.

Find Large Files Modified Over a Year Ago

To find large files modified more than a year ago:

find /var/log -type f -size +100M -mtime +365 -exec ls -lh {} \;

Find Disk Usage by File Type (Extension)

If you want to know which file types are consuming the most space, you can group files by extension:

find /home/tecmint -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -10

Find Total Space Used by Log Files

To get the total size consumed by specific file types, like all .log files:

find /var/log -type f -name "*.log" -exec du -ch {} + | grep total$

Find Total Space Used by Video Files

Or to find the total space used by video files:

find /home/tecmint -type f \( -name "*.mp4" -o -name "*.avi" -o -name "*.mkv" \) -exec du -ch {} + | grep total$

Find and Remove Empty Files and Directories

Empty files and directories waste inodes and clutter your filesystem, so here’s how to find them:

To find all empty files:

find /home/tecmint -type f -empty

To find all empty directories:

find /home/tecmint -type d -empty

If you want to delete all empty files (use with caution):

find /home/tecmint -type f -empty -delete

Analyze Disk Usage with ncdu Tool

While the du and find commands are powerful, the ncdu (NCurses Disk Usage) tool provides an interactive, user-friendly interface for analyzing disk usage.

First, install ncdu:

sudo yum install ncdu       [On RHEL/CentOS/Fedora]
sudo apt install ncdu       [On Debian/Ubuntu]

Then run it on any directory:

ncdu /home

The ncdu tool allows you to navigate through directories using the arrow keys, delete files with the 'd' key, and get a visual representation of disk usage. It’s particularly helpful when you need to quickly identify and clean up space interactively.

Find Recently Created Large Files in Linux

To track down large files that were recently created (useful for identifying what’s filling up your disk):

find /home -type f -size +50M -ctime -7 -exec ls -lh {} \;

This finds files larger than 50MB created in the last 7 days.

When using the find command with -size option, remember these units:

  • c: bytes
  • k: kilobytes (1024 bytes)
  • M: megabytes (1024 kilobytes)
  • G: gigabytes (1024 gigabytes)
  • T: terabytes (1024 gigabytes)

Example: -size +500M finds files larger than 500 megabytes.

That’s all for now. Finding the biggest files and folders is no big deal. Even a novice administrator can easily find them. If you find this tutorial useful, please share it on your social networks and support TecMint.

Root Plan
Premium Linux Education for Serious Learners

Take Your Linux Skills to the Next Level

Root members get full access to every course, certification prep track, and a growing library of hands-on Linux content — with new courses added every month.

What You Get
Ad-free access to all premium articles
Access to all courses: Learn Linux, AI for Linux, Bash Scripting, Ubuntu Handbook, Golang and more.
Access to Linux certifications (RHCSA, RHCE, LFCS and LFCA)
Access new courses on release
Get access to weekly newsletter
Priority help in comments
Private Telegram community
Connect with the Linux community
Ravi Saive
I'm Ravi Saive, an award-winning entrepreneur and founder of several successful 5-figure online businesses, including TecMint.com, GeeksMint.com, UbuntuMint.com, and the premium learning hub Pro.Tecmint.com.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.

Root Plan Premium Linux Education for Serious Learners

Before You Go - Upgrade Your Linux Skills

Root members get everything in one place, with new courses added every month.

What You Get
Ad-free access to all premium articles
Access to all courses: Learn Linux, AI for Linux, Bash Scripting, Ubuntu Handbook, Golang and more.
Linux certifications: RHCSA, RHCE, LFCS and LFCA
Access new courses on release
Weekly newsletter, priority support & Telegram community
Join Root Today and Start Learning Linux the Right Way
Structured courses, certification prep, and a community of Linux professionals - all in one membership.
Join Root Plan →
$8/mo · or $59/yr billed annually