linux命令詳解之du命令


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM