Find All Large Files On A Linux System

Before getting started, we suggest you Learn Linux Basics and follow these precautions.

Updated: 2019-03-10
Created: 2010-06-01

The best way to find large files on your Linux system is to use the command line. This HowTo will suggest a few methods for listing such files in specific directories or complete file systems.

Option 1

This is a basic method for listing files of a certain size. Here we're searching the home directory of the user you're currently logged in as for files greater than 20MB.

find ~ -size +20M

Note: Alternatively, you may search for files less than a certain size by changing the + to a - and may also change the directory path to search.

Option 2

For more detailed output, we can use find to search directories for files greater than 20MB, display the path and file size. In this example we're searching the entire file system, but you may choose to use a specific path.

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

Option 3

Find reports errors when it searches directories for which it has no permissions. This is attributed to not having administrative privileges, so you may want to su to root, otherwise, discard these errors by redirecting to /dev/null.

find / -type f -size +20M -exec ls -lh {} \; 2> /dev/null | awk '{ print $NF ": " $5 }'

Option 4

Additionally, you may find it beneficial to sort (numerically) based on the size (second column).

find / -type f -size +20M -exec ls -lh {} \; 2> /dev/null | awk '{ print $NF ": " $5 }' | sort -nk 2,2

Output will be similar to this:

./Desktop/linuxlookup/.cache/tracker/file-index.db: 24M
./.mozilla/firefox/z65ywy3s.default/places.sqlite: 43M
./Desktop/linuxlookup/.evolution/mail/local/Inbox.sbd/ll: 98M
./Desktop/linuxlookup/dev/security-report.tar: 140M

Option 5

Or reverse the sort order (larger files listed first) by using this.

find / -type f -size +20000k -exec ls -lh {} \; 2> /dev/null | awk '{ print $NF ": " $5 }' | sort -nrk 2,2