Linux: Find Out Directory Size Command

last updated in Categories , ,

I am a new Linux user. How do I find out size of a directory on Linux operating systems using command line options?

You need to use the du command:


[a] Find and estimate file space usage.

[b] Summarize disk usage of each FILE/Directory/Folder.

[c] Shows the sizes of directories and files.


The basic syntax is:

du dirName
du [options] dirName


Without any options, du command shows the names and used space for each directories including all sub-directories in the current directory:
Sample outputs:

Fig.01: du command in action
Fig.01: du command in action

To find information about /etc and /home/nixcraft directory, enter:
du /path/to/dir
du /etc
du /home/nixcraft
du /root /home/nixcraft

Pass the -h option to get output in human readable format i.e. show output in kilobytes (K), megabytes (M) and gigabytes (G):
du -h /etc
du -h /dir1/file2
du -h /root
du -h

Sample outputs:

8.0K	./.vim
24K	./scripts
48K	./.ssh
16K	./.keychain
2.2M	./.lftp
2.4M	.

Pass the -s option to see the total disk space used by a directory:
du -sh
du -sh /etc/
du -sh /etc /home/ /securebackup/

Sample outputs:

4.1M	/etc
152K	/home/
902M	/securebackup/

Pass the -c to see a grand total for all of the files, type:
du -csh /root/ /etc/ /home/
Sample outputs:

2.4M	/root/
4.1M	/etc/
152K	/home/
6.6M	total
See also
  • UNIX disk usage command examples – include command line tool such as du, df, ncdu, and GUI tools.
  • See du command man page for more information and examples.


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

11 comment

  1. “du -sh * | sort -r -n”

    Show all current files + directories with their size and sort them so that the largest file/folder shows on top and the smallest at the bottom.

      1. That should be “du -sh * | sort -r -h”

        -n doesn’t take into account the K/M factor, -h does!

        If you want largest at the bottom:
        “du -sh * | sort -h”

  2. another usefull command to determine directory size is

    du -h | sort -h

    it sorts directory by size

  3. Another good option to show disk usage is to limit only to one level, you don’t need all information from all folders each time.

    du -h –max-depth=1

    It will be faster and it won’t show you lots of information

    root@bogdan:/root# du -h --max-depth=1
    2.9M	./.nbi
    948K	./.local
    104K	./.gconf
    12K	./.gnome2
    4.0K	./.gnome2_private
    44K	./.filezilla
    356K	./.cache
    12K	./Desktop
    4.0K	./.gvfs
    1.2M	./.gem
    12K	./.dbus
    86M	./.cpan
    26M	./perl5
    1.5M	./.java
    80K	./.config
    16K	./.ssh
    4.0K	./.pulse
    165M	.
    1. This command is a bit different.
      It shows the files under top-level directory, but doesn’t show the total size of the directory.
      while with –max-depth=1
      it does not show the files, but will show the total size.

      In terms of the size of the first-level sub-directories, they are the same.

    Still, have a question? Get help on our forum!