Contact Support

How do I find out the size of a directory?

To simplify this process, we have written a script, nn_dir_contents. This script can be run in a variety of ways.

Command Result
nn_dir_contents Shows the size of, and number of directory entries in, the current working directory
nn_dir_contents -s Shows the size of the current working directory
nn_dir_contents -n Shows the number of directory entries in the current working directory
nn_dir_contents <DIR> Shows the size of, and number of directory entries in, the directory DIR
nn_dir_contents -s <DIR> Shows the size of the directory DIR
nn_dir_contents -n <DIR> Shows the number of directory entries in the directory DIR
nn_dir_contents <DIR1> <DIR2> ... Shows the size of, and number of directory entries in, the directories DIR1, DIR2, etc.
nn_dir_contents -s <DIR1> <DIR2> ... Shows the sizes of the directories DIR1, DIR2, etc.
nn_dir_contents -n <DIR1> <DIR2> ... Shows the numbers of directory entries in the directories DIR1, DIR2, etc.

The last three forms of commands work with shell globbing (*, ?, etc.), and the last two are particularly useful if you want to find out how much each subdirectory contributes to a directory's total disk space or inode counts. The outputs of the last two commands can easily be piped to sort if you want to get a list of directories from the smallest to the largest (sort -k 2h,2 for a human-readable sort), or from the fewest files to the most (sort -k 2n,2 for a numeric sort).

Only directory arguments are considered by nn_dir_contents, though files do count towards a directory's contents.

nn_dir_contents is a wrapper for du and is run without any flags that alter the behaviour of du with respect to sparse files. If you think the sparsity of a file is relevant to you, you may need to run du separately on directories that you believe contain sparse files.

nn_dir_contents relies on two consecutive executions of the find command in order to count the number of files. It does not lock the directory, so if the directory's contents are altered (files created or deleted) while the command is running, the results may be inaccurate or out of date. This is a known limitation of the command.