du命令概述
du命令作用是估計文件系統的磁盤已使用量,常用於查看文件或目錄所占磁盤容量。
du命令與df命令不同,df命令是統計磁盤使用情況,詳見linux命令詳解之df命令。
du命令會直接到文件系統內查找所有文件數據,所以命令執行時會耗費一點兒時間。
在默認情況下,輸出結果大小是以KB為單位的。如果想以MB為單位,使用-m參數即可,如果只想知道目錄占了多少容量,使用-s參數即可。
du命令語法
du [選項] [文件或目錄名稱]
參數:
-a:--all, 列出所有的文件和目錄容量大小而不僅僅列出目錄容量大小,默認情況只是統計目錄的容量大小,參考示例1。
-B:--block-size=SIZE,指定單位大小。
-b:--bytes,以字節為單位列出文件和目錄的容量大小。
-c:--total,除了列出文件和目錄的容量大小外,列出總的容量大小,參考示例2。
-h:--human-readable,以人們易讀的方式(KB,MB,GB)顯示容量大小,參考示例3。
--si:和-h參數類似,但是單位換算時是以1000進行換算,而不是1024。
-k:和--block-size=1k類似,以KB為單位。
-m:和--block-size=1m類似,以MB為單位。
-s:--summarize,僅列出總量,而不列出每個目錄和文件的大小,參考示例4。
-S:--separate-dirs,和-s參數類似,但是統計時不包含子目錄的容量大小。
--max-depth=N:類似於默認情況的du,但是,遞歸顯示時的遞歸深度小於等於N。如果--max-depth=0,就相當於-s參數,只統計總量而已,參考示例4。如果--max-depth=1,就相當於du -s 目錄/*,參考示例5。
du命令示例
test目錄里的內容如下
test/dir1 /dir1-dira /dir1-dira-file1 /dir1-file1 /dir1-file2 /dir2 /file1 /file2 [root@localhost test]# ll -R # test目錄下所有文件 .: total 216 drwxr-xr-x 3 root root 4096 Apr 18 05:47 dir1 drwxr-xr-x 2 root root 4096 Apr 18 05:44 dir2 -rwxr-xr-x 1 root root 91272 Apr 18 05:45 file1 -rwxr-xr-x 1 root root 91272 Apr 18 05:46 file2 ./dir1: total 864 drwxr-xr-x 2 root root 4096 Apr 18 05:48 dir1-dira -rwxr-xr-x 1 root root 55472 Apr 18 05:46 dir1-file1 -rwxr-xr-x 1 root root 801528 Apr 18 05:47 dir1-file2 ./dir1/dir1-dira: total 4 -rw-r--r-- 1 root root 0 Apr 18 05:48 dir1-dira-file1 ./dir2: total 0
示例1:列出目錄下所有文件和目錄的容量大小
[root@localhost test]# du #默認情況下,只統計目錄的容量大小。 8 ./dir2 12 ./dir1/dir1-dira 876 ./dir1 1092 . [root@localhost test]# du -a #統計目錄和文件的容量大小。 100 ./file2 8 ./dir2 100 ./file1 4 ./dir1/dir1-dira/dir1-dira-file1 12 ./dir1/dir1-dira 792 ./dir1/dir1-file2 64 ./dir1/dir1-file1 876 ./dir1 1092 .
示例2:統計各文件的大小,並顯示總大小
[root@localhost test]# du /home/test/ # 默認,不顯示總大小 8 /home/test/dir2 12 /home/test/dir1/dir1-dira 876 /home/test/dir1 1092 /home/test/ [root@localhost test]# du -c /home/test/ #最下面顯示總大小total 8 /home/test/dir2 12 /home/test/dir1/dir1-dira 876 /home/test/dir1 1092 /home/test/ 1092 total
示例3:以易讀的方式顯示容量大小
[root@localhost test]# du -h /home/test 8.0K /home/test/dir2 12K /home/test/dir1/dir1-dira 876K /home/test/dir1 1.1M /home/test
示例4:僅顯示目錄的總大小
[root@localhost test]# du -s /home #通過-s參數只統計總量 3208 /home [root@localhost test]# du --max-depth=0 /home #通過指定遞歸深度方式 3208 /home
示例5:顯示指定目錄下每個文件或目錄的容量大小
[root@localhost test]# du -s /* #使用-s參數 8320 /bin 6659 /boot 152 /dev 170328 /etc 3208 /home 142868 /lib 25868 /lib64 16 /lost+found 8 /media 0 /misc 16 /mnt 0 /net 16 /opt 0 /proc 200 /root 36680 /sbin 0 /selinux 8 /srv 0 /sys 436 /tmp 2498560 /usr 72792 /var [root@localhost test]# du --max-depth=1 / #使用指定遞歸深度方式 436 /tmp 142868 /lib 0 /net 16 /opt 6659 /boot 0 /sys 8 /srv 8 /media 16 /mnt 25868 /lib64 36680 /sbin 2498560 /usr 170328 /etc 16 /lost+found 72792 /var 0 /selinux 8320 /bin 0 /proc 0 /misc 200 /root 3208 /home 152 /dev 2966147 /
示例6:顯示指定目錄下每個文件或目錄的容量大小,並且以易讀方式顯示(常用)。
[root@localhost test]# du -sh /* 8.2M /bin 6.6M /boot 152K /dev 167M /etc 3.2M /home 140M /lib 26M /lib64 16K /lost+found 8.0K /media 0 /misc 16K /mnt 0 /net 16K /opt 0 /proc 200K /root 36M /sbin 0 /selinux 8.0K /srv 0 /sys 436K /tmp 2.4G /usr 72M /var