Finding large files and directories on Linux

Use this simple command to find large directories. To find directories over 1GB

[root@localhost]# du -h / | grep ^[0-9\.]*G

G can be replaced with M if looking for MB instead.

To find directories over 10GB and sort the output with the largest directories on top

[root@localhost]# du -h / | grep ^[1-9][0-9][0-9\.]*G | sort -rn

To find directories over 200GB

[root@localhost]# du -h / | grep ^[2-9][0-9][0-9][0-9\.]*G

du -h Lists directory sizes in human readable format

/ Tells the du command to search the / (root) directory. It could easily be another directory such as /home/ or /var/log/

| The | or pipe symbol sends the output of the “du -h /” command to the following command.

grep Grep searches through the output looking for strings matching the following regular expression.

^[1-9][0-9][0-9\.]*G - A regular expression
^ Represents the start of the string
[1-9] Represents digits 1-9
[0-9] Represents digits 0-9
[0-9\.] Represents digits 0-9 or . (the “dot” character is a special character and must have a \ in front to show we are looking for a “dot”
* Represents the previous expression ([0-9\.]) Zero or more times.
G Represents the capital letter G. When du outputs data in human readable format, Gigabytes are represented by “G”.
| The Pipe symbol again. This time it is used to send output to the sort command.
sort -rn This command sorts the output from the other commands with the largest directories on top.

Related Posts

Tags: , ,

Leave a Reply

You must be logged in to post a comment.