du command in linux

du command in linux

du command line utility  mostly used to display or find information related to hard disk and disk usage.

du utility Explanation:-

1.du command is used to see the disk usage.
At present i am inside the /var/ftp/ Directory and i want to see the complete Disk Usage Statistics of this
Directory and it's sub-directories.

[root@satish ftp]# du
10584   ./Server/repodata
2638388 ./Server
2638392 .

2.Now to see the above statistics in human readable format use option -h with du

[root@satish ftp]# du -h
11M     ./Server/repodata
2.6G    ./Server
2.6G    .

3.Now if you want to see the disk usage statistics of any particular directory along with it's sub-directories you can use the below command.

[root@satish ~]# du /tmp/
4       /tmp/ssh-wXKGzB3421
4       /tmp/virtual-root.bsjXxG
4       /tmp/keyring-ulhVbt
4       /tmp/gconfd-satish
28      /tmp/alexa/toolbar@alexa.com/2.17/toolbar
32      /tmp/alexa/toolbar@alexa.com/2.17
36      /tmp/alexa/toolbar@alexa.com
40      /tmp/alexa
4       /tmp/ksocket-root
4       /tmp/virtual-root.NcMyoT
4       /tmp/virtual-root.L4MSYT
8       /tmp/gconfd-root/lock
16      /tmp/gconfd-root
4       /tmp/virtual-root.qgqHyO
4       /tmp/kde-root
4       /tmp/.ICE-unix
4       /tmp/.font-unix
4       /tmp/keyring-5yYf0e
4       /tmp/.X11-unix
4       /tmp/keyring-bbxuTi
8       /tmp/orbit-root
4       /tmp/keyring-jzXi43
5780    /tmp/

4.To see the above command in human readable format use below command.

[root@satish ~]# du -h /tmp/
4.0K    /tmp/ssh-wXKGzB3421
4.0K    /tmp/virtual-root.bsjXxG

4.0K    /tmp/keyring-ulhVbt
4.0K    /tmp/gconfd-satish
28K     /tmp/alexa/toolbar@alexa.com/2.17/toolbar
32K     /tmp/alexa/toolbar@alexa.com/2.17
36K     /tmp/alexa/toolbar@alexa.com
40K     /tmp/alexa
4.0K    /tmp/ksocket-root
4.0K    /tmp/virtual-root.NcMyoT
4.0K    /tmp/virtual-root.L4MSYT
8.0K    /tmp/gconfd-root/lock
16K     /tmp/gconfd-root
4.0K    /tmp/virtual-root.qgqHyO
4.0K    /tmp/kde-root
4.0K    /tmp/.ICE-unix
4.0K    /tmp/.font-unix
4.0K    /tmp/keyring-5yYf0e
4.0K    /tmp/.X11-unix
4.0K    /tmp/keyring-bbxuTi
8.0K    /tmp/orbit-root
4.0K    /tmp/keyring-jzXi43
5.7M    /tmp/

Note: -h  option with “du” command provides results in “Human Readable Format“.

What it means that now you can see sizes in Bytes, Kilobytes, Megabytes, Gigabytes etc.

5.Use "-s" option to see the Grand Total size of any directory.

[root@satish ~]# du -hs /var/ftp/
2.6G    /var/ftp/

6. Using "-ah" option we can view the disk Usage information of all file and folders in a directory.

[root@satish ~]# du -ah /home/u1/
4.0K    /home/u1/.bashrc
4.0K    /home/u1/.emacs
101M    /home/u1/a1
4.0K    /home/u1/.mozilla/extensions
4.0K    /home/u1/.mozilla/plugins
12K     /home/u1/.mozilla
4.0K    /home/u1/new
4.0K    /home/u1/vivek.sh
4.0K    /home/u1/.bash_logout
4.0K    /home/u1/.bash_profile
4.0K    /home/u1/.kde/Autostart/.directory
8.0K    /home/u1/.kde/Autostart
12K     /home/u1/.kde
101M    /home/u1/

7.Using "kh" option we can see the disk usage of a directory and it's sub-directories in kilobytes blocks.

[root@satish ~]# du -hk /home/satish/
4       /home/satish/Desktop/win7
1022720 /home/satish/Desktop
4       /home/satish/.eggcups
24      /home/satish/mail/.imap/Trash
28      /home/satish/mail/.imap/Sent
24      /home/satish/mail/.imap/INBOX
24      /home/satish/mail/.imap/Drafts
104     /home/satish/mail/.imap
116     /home/satish/mail

8.Use -mh option to see disk usage information in MB

[root@satish ~]# du -mh /home/slashroot/
8.0K    /home/slashroot/.mozilla/extensions
8.0K    /home/slashroot/.mozilla/plugins
24K     /home/slashroot/.mozilla
64K     /home/slashroot/

9.Use "-ch"option to see grand total disk usage at the last line.

[root@satish ~]# du -ch /tmp/
4.0K    /tmp/ssh-wXKGzB3421
4.0K    /tmp/virtual-root.bsjXxG
4.0K    /tmp/keyring-ulhVbt
4.0K    /tmp/gconfd-satish
28K     /tmp/alexa/toolbar@alexa.com/2.17/toolbar
32K     /tmp/alexa/toolbar@alexa.com/2.17
36K     /tmp/alexa/toolbar@alexa.com
40K     /tmp/alexa
4.0K    /tmp/ksocket-root
4.0K    /tmp/virtual-root.NcMyoT
4.0K    /tmp/virtual-root.L4MSYT
8.0K    /tmp/gconfd-root/lock
16K     /tmp/gconfd-root
4.0K    /tmp/virtual-root.qgqHyO
4.0K    /tmp/kde-root
4.0K    /tmp/.ICE-unix
4.0K    /tmp/.font-unix
4.0K    /tmp/keyring-5yYf0e
4.0K    /tmp/.X11-unix
4.0K    /tmp/keyring-bbxuTi
8.0K    /tmp/orbit-root
4.0K    /tmp/keyring-jzXi43
5.7M    /tmp/
5.7M    total

10. To get summary for files and Directories

#du -a

11.To see the disk usage for a particular file

#du -h filename

[root@satish ~]# du -h eclipse-SDK-4.2.1-linux-gtk.tar.gz
928K    eclipse-SDK-4.2.1-linux-gtk.tar.gz

12.To see the disk usage of multiple files at a time use

#df -h fle1 file2

[root@satish ~]# du -h index.php install.log
4.0K    index.php
36K     install.log
[root@satish ~]# du -h index.php install.log iplist link.php file.img
4.0K    index.php
36K     install.log
4.0K    iplist
9.8M    file.img

13. Using "--time" option we can see the disk usage statistics on the basis of modification time.

[root@satish ~]# du --time -ha /etc/httpd/
4.0K    2009-07-15 18:34        /etc/httpd/conf.d/proxy_ajp.conf
4.0K    2009-07-15 18:34        /etc/httpd/conf.d/manual.conf
4.0K    2013-01-09 23:23        /etc/httpd/conf.d/munin.conf
4.0K    2009-05-21 20:56        /etc/httpd/conf.d/squirrelmail.conf

14 using "--exclude" option we can exclude a particular type of file format from disk usage statistics.

# du -ah --exclude="*.rpm" /var/ftp/Server/
[root@satish Server]# du -ah --exclude="*.rpm" /var/ftp/Server/
556K    /var/ftp/Server/TRANS.TBL
2.4M    /var/ftp/Server/repodata/filelists.xml.gz
1008K   /var/ftp/Server/repodata/comps-rhel5-server-core.xml
740K    /var/ftp/Server/repodata/primary.xml.gz
6.4M    /var/ftp/Server/repodata/other.xml.gz
4.0K    /var/ftp/Server/repodata/TRANS.TBL
4.0K    /var/ftp/Server/repodata/repomd.xml
11M     /var/ftp/Server/repodata
12M     /var/ftp/Server/

If you want to see what will be the output if we not use --exclude=".rpm" option here see below(the output is much longer, i have suppressed it).

[root@satish Server]# du -ah /var/ftp/Server/
212K    /var/ftp/Server/psgml-1.2.5-4.3.noarch.rpm
108K    /var/ftp/Server/zlib-devel-1.2.3-3.i386.rpm
28K     /var/ftp/Server/libibmad-static-1.2.3-1.el5.i386.rpm
60K     /var/ftp/Server/ftp-0.17-35.el5.i386.rpm
1.6M    /var/ftp/Server/openmotif-2.3.1-2.el5.i386.rpm
612K    /var/ftp/Server/setools-gui-3.0-3.el5.i386.rpm
180K    /var/ftp/Server/netpbm-devel-10.35.58-8.el5.i386.rpm
16K     /var/ftp/Server/xorg-x11-drv-keyboard-1.1.0-3.i386.rpm

15.Find out top 20 largest File or directory.

[root@satish ~]# du -sk /var/log/* | sort -r -n | head -20
1108    /var/log/messages.3
996     /var/log/maillog.3
536     /var/log/wtmp
404     /var/log/anaconda.log
400     /var/log/audit
280     /var/log/lynis.log
224     /var/log/maillog
156     /var/log/maillog.1
152     /var/log/maillog.2
144     /var/log/httpd
92      /var/log/sa
88      /var/log/munin
80      /var/log/cups
68      /var/log/scrollkeeper.log
56      /var/log/lynis-report.dat
48      /var/log/prelink
48      /var/log/messages.2
48      /var/log/lastlog
44      /var/log/messages.1
40      /var/log/Xorg.0.log.old