Find the Largest Top 10 Files and Directories On a Linux

LinuxFile SystemUnix

Sometimes, it becomes important to find which files or directories are ingesting up, all of your disk area on a Linux. Similarly, we should be able to discover a particular directory location on file system such as /tmp/ or /var/ or /domestic/. This article will help you to use Unix and Linux commands for finding the most important or biggest files or directories on the file systems.

Although, there is no shortcut command which is available to discover the largest documents/directories on a Linux/UNIX/BSD file system but there is a possibility which we will be showcasing you about.

By aggregating the following three commands (the use of pipes) can help you easily discover a list of largest documents on a Linux machine.

• du command : It estimates file space usage
• sort command : Sort lines of text files or given input data
• head command : Output the first part of files i.e. to display first 10 largest file
• find command : It Searches file on Linux machine

Use the following command to find the largest Top 10 files and directories on a Linux system –

$sudo du -a /var | sort -n -r | head -n 10 The sample output should be like this – 1128132 /var 779176 /var/cache 629292 /var/cache/apt 541020 /var/cache/apt/archives 327212 /var/lib 172180 /var/lib/apt 172024 /var/lib/apt/lists 130084 /var/cache/apt-xapian-index 130080 /var/cache/apt-xapian-index/index.1 87556 /var/lib/dpkg To see human readable output, use the following command –$ du -hsx * | sort -rh | head -10

The sample output should be like this –

4.4G   Desktop
149M   en-GB
146M   Apache_OpenOffice_4.1.1_Linux_x86-64_install-deb_en-GB.tar.gz
95M   scala-2.11.4.deb
20M   gawk-4.1.1
4.5M   linux-dash
3.9M   yii-1.1.13.e9e4a0.tar.gz.1
3.9M   yii-1.1.13.e9e4a0.tar.gz

The above command can be better understood with the following explanations –

• du command -h option : Display sizes in human readable format (e.g., 1K, 234M, 2G).
• du command -s option : It shows only a total for each argument (summary).
• du command -x option : Skip directories on different file systems.
• sort command -r option : Reverse the result of comparisons.
• sort command -h option : It compares human readable numbers. This is GNU sort specific option only.
• head command -10 OR -n 10 option : It shows the first 10 lines.

The above command will work for GNU/sort which is installed on a Linux, Other Unix like operating systems uses the following command –

$find /path/to/dir/ -printf '%s %p\n'| sort -nr | head -10$find . -printf '%s %p\n'| sort -nr | head -10

The sample output should be like this –

185016320 ./Desktop/gdb-7.9.tar
152847886 ./Apache_OpenOffice_4.1.1_Linux_x86-64_install-deb_en-GB.tar.gz
98756608 ./scala-2.11.4.deb
96477184 ./.cache/chromium/Default/Cache/data_3

To skip directories and only display files, use the following command

$find /path/to/search/ -type f -printf '%s %p\n'| sort -nr | head -10 or$ find /path/to/search/ -type f -iname "*.mp4" -printf '%s %p\n'| sort -nr | head -10

Hunt Down Disk Space Hogs with Ducks

Use the following bash shell commands as shown below

$alias ducks='du -cks * | sort -rn | head' Use the following command to get top 10 files/dirs eating your disk space-$ ducks

The sample output should be like this –

5994400   total
4559508   Desktop