Using Sort to List Directories by Size

If you manage a UNIX system with a large number of directories that vary in size, chances are that you’ve needed to figure out which ones are using up the most disk space. Of course if the directories are user accounts, the best way to do this is to enable quotas and use the “repquota” command. If you just have a bunch of directories, however, you can easily figure out which ones are largest by giving the correct arguments to “du” and “sort”. Here is how:

du -sk * | sort +0nr

This will display the size of all directories and sort them from largest to smallest. If you want to sort them from smallest to largest, simply remove the “r”.

du -sk * | sort +0n

If you have nested directories, you will need to incorporate foreach to recurse through and get all the directory names.

11 thoughts on “Using Sort to List Directories by Size

  1. Sort directories by size and print it in human readable format:

    du -k –max-depth=1 | sort -n | awk ‘{printf(“%dMB\t%-10s\n”, int($1 / 1024 + 0.5), $2)}’

Leave a Reply