du命令範例


Linux中的du命令也是檢視使用空間的,與df命令不同的是,Linux du命令是對檔案和目錄磁碟使用的空間的檢視,所以它和df命令還是有一些區別的。

1.命令格式

du [選項][檔案]

2.命令功能

顯示每個檔案和目錄的磁碟使用空間。

3.命令引數

  • -a-all 顯示目錄中個別檔案的大小。
  • -b-bytes 顯示目錄或檔案大小時,以byte為單位。
  • -c--total 除了顯示個別目錄或檔案的大小外,同時也顯示所有目錄或檔案的總和。
  • -k--kilobytesKB(1024bytes)為單位輸出。
  • -m--megabytesMB為單位輸出。
  • -s--summarize 僅顯示總計,只列出最後加總的值。
  • -h--human-readableKMG為單位,提高資訊的可讀性。
  • -x--one-file-xystem 以一開始處理時的檔案系統為準,若遇上其它不同的檔案系統目錄則略過。
  • -L<符號連結>或--dereference<符號連結> 顯示選項中所指定符號連結的原始檔大小。
  • -S--separate-dirs 顯示個別目錄的大小時,並不含其子目錄的大小。
  • -X<檔案>或--exclude-from=<檔案> 在<檔案>指定目錄或檔案。
  • --exclude=<目錄或檔案> 略過指定的目錄或檔案。
  • -D--dereference-args 顯示指定符號連結的原始檔大小。
  • -H--si-h引數相同,但是KMG是以1000為換算單位。
  • -l--count-links 重複計算硬體連結的檔案。

4.使用範例

範例1:顯示目錄或者檔案所占空間

命令:

du

輸出:

[yiibai@localhost ~]$ du
24      ./test4
0       ./project/lib
0       ./project/bin
0       ./project/doc/info
0       ./project/doc/product
0       ./project/doc
0       ./project/logs/info
0       ./project/logs/product
0       ./project/logs
0       ./project/service/deploy/info
0       ./project/service/deploy/product
0       ./project/service/deploy
0       ./project/service
0       ./project
4       ./logs/test3
4       ./logs
4       ./scripts
84      .
[yiibai@localhost ~]$

說明:
只顯示當前目錄下面的子目錄的目錄大小和當前目錄的總的大小,最下面的1288為當前目錄的總大小

範例2:顯示指定檔案所占空間

命令:

du log3.log

輸出:

[yiibai@localhost ~]$ du log3.log
560     log3.log
[yiibai@localhost ~]$

範例3:檢視指定目錄的所佔空間

命令:

du /usr/local

輸出:

[yiibai@localhost ~]$ du /usr/local/
0       /usr/local/bin
0       /usr/local/etc
0       /usr/local/games
0       /usr/local/include
0       /usr/local/lib
0       /usr/local/lib64
0       /usr/local/libexec
0       /usr/local/sbin
0       /usr/local/share/applications
0       /usr/local/share/info
0       /usr/local/share/man/man1
0       /usr/local/share/man/man1x
0       /usr/local/share/man/man2
0       /usr/local/share/man/man2x
0       /usr/local/share/man/man3
0       /usr/local/share/man/man3x
0       /usr/local/share/man/man4
0       /usr/local/share/man/man4x
0       /usr/local/share/man/man5
0       /usr/local/share/man/man5x
0       /usr/local/share/man/man6
0       /usr/local/share/man/man6x
0       /usr/local/share/man/man7
0       /usr/local/share/man/man7x
0       /usr/local/share/man/man8
0       /usr/local/share/man/man8x
0       /usr/local/share/man/man9
0       /usr/local/share/man/man9x
0       /usr/local/share/man/mann
0       /usr/local/share/man
0       /usr/local/share
163804  /usr/local/src
163804  /usr/local/
[yiibai@localhost ~]$

範例4:顯示多個檔案所占空間

命令:

du file1 file2

輸出:

[yiibai@localhost test4]$ du log.tar log3.log
12      log.tar
448     log3.log
[yiibai@localhost test4]$

範例5:只顯示總和的大小

命令:

du -s

輸出:

[yiibai@localhost ~]$ du -s
1084    .
[yiibai@localhost ~]$ du -s project/
0       project/
[yiibai@localhost ~]$ du -s test4/
468     test4/
[yiibai@localhost ~]$

範例6:方便閱讀的格式顯示

命令:

du -h dir

輸出:

[yiibai@localhost ~]$ du -h project/
0       project/lib
0       project/bin
0       project/doc/info
0       project/doc/product
40K     project/doc
0       project/logs/info
0       project/logs/product
152K    project/logs
0       project/service/deploy/info
0       project/service/deploy/product
0       project/service/deploy
0       project/service
192K    project/
[yiibai@localhost ~]$

範例7:檔案和目錄都顯示

命令執行和輸出:

[yiibai@localhost ~]$ du -ah project/
0       project/lib
0       project/bin/run.py
0       project/bin
0       project/doc/info
0       project/doc/product
40K     project/doc/test.txt
40K     project/doc
0       project/logs/info
0       project/logs/product
148K    project/logs/readme.txt
4.0K    project/logs/log201710.log
152K    project/logs
0       project/service/deploy/info
0       project/service/deploy/product
0       project/service/deploy
0       project/service
192K    project/
[yiibai@localhost ~]$

範例8:顯示幾個檔案或目錄各自佔用磁碟空間的大小,還統計它們的總和

命令:

du -c log3.log log1.log text.txt

輸出:

[yiibai@localhost ~]$ ll
total 572
-rwxr-xr-x. 1 yiibai yiibai    464 Feb 15 20:58 log1.log
-rw-rw-r--. 1 yiibai yiibai      0 Feb 15 20:43 log2018.log
-rw-rw-r--. 1 yiibai yiibai      0 Feb 15 20:43 log2019.log
-rw-rw-r--. 1 yiibai yiibai      0 Feb 15 20:43 log2020.log
-rwxrwxr-x. 1 yiibai yiibai      0 Feb 15 20:43 log2.log
-rw-rw-r--. 1 yiibai yiibai 571759 Feb 17 04:02 log3.log
lrwxrwxrwx. 1 yiibai yiibai      7 Feb 15 22:46 log_link.log -> log.log
-rwxr-xr-x. 1 yiibai yiibai      0 Feb 16 21:38 log.log
drwxrwxr-x. 3 yiibai yiibai     35 Feb 16 20:54 logs
drwxrwxr-x. 7 yiibai yiibai     66 Feb 15 20:48 project
-rw-rw-r--. 1 yiibai yiibai      0 Feb 17 02:01 run.py
drwxrwxr-x. 2 root   yiibai     67 Feb 17 02:38 scripts
-rw-rw-r--. 1 yiibai yiibai      0 Feb 15 21:10 test3.log
drwxrwxr-x. 2 yiibai yiibai    177 Feb 16 21:28 test4
-rw-rw-r--. 1 yiibai yiibai     19 Feb 15 21:08 text.txt
-rw-rw-r--. 1 yiibai yiibai      1 Feb 15 20:46 tmpcore.log
[yiibai@localhost ~]$ du -c log3.log log1.log text.txt
560     log3.log
4       log1.log
4       text.txt
568     total
[yiibai@localhost ~]$

說明:
加上-c選項後,du不僅顯示兩個目錄各自佔用磁碟空間的大小,還在最後一行統計它們的總和。

範例9:按照空間大小排序

命令:

du|sort -nr|more

輸出:

[yiibai@localhost ~]$ du|sort -nr|more
1276    .
468     ./test4
192     ./project
152     ./project/logs
40      ./project/doc
4       ./scripts
4       ./logs/test3
4       ./logs
0       ./project/service/deploy/product
0       ./project/service/deploy/info
0       ./project/service/deploy
0       ./project/service
0       ./project/logs/product
0       ./project/logs/info
0       ./project/lib
0       ./project/doc/product
0       ./project/doc/info
0       ./project/bin
[yiibai@localhost ~]$

範例10:輸出當前目錄下各個子目錄所使用的空間

命令:

du -h  --max-depth=1

輸出:

[yiibai@localhost ~]$ ll
total 572
-rwxr-xr-x. 1 yiibai yiibai    464 Feb 15 20:58 log1.log
-rw-rw-r--. 1 yiibai yiibai      0 Feb 15 20:43 log2018.log
-rw-rw-r--. 1 yiibai yiibai      0 Feb 15 20:43 log2019.log
-rw-rw-r--. 1 yiibai yiibai      0 Feb 15 20:43 log2020.log
-rwxrwxr-x. 1 yiibai yiibai      0 Feb 15 20:43 log2.log
-rw-rw-r--. 1 yiibai yiibai 571759 Feb 17 04:02 log3.log
lrwxrwxrwx. 1 yiibai yiibai      7 Feb 15 22:46 log_link.log -> log.log
-rwxr-xr-x. 1 yiibai yiibai      0 Feb 17 04:16 log.log
drwxrwxr-x. 3 yiibai yiibai     35 Feb 16 20:54 logs
drwxrwxr-x. 7 yiibai yiibai     66 Feb 15 20:48 project
-rw-rw-r--. 1 yiibai yiibai      0 Feb 17 02:01 run.py
drwxrwxr-x. 2 root   yiibai     67 Feb 17 02:38 scripts
-rw-rw-r--. 1 yiibai yiibai      0 Feb 15 21:10 test3.log
drwxrwxr-x. 2 yiibai yiibai    177 Feb 16 21:28 test4
-rw-rw-r--. 1 yiibai yiibai     19 Feb 15 21:08 text.txt
-rw-rw-r--. 1 yiibai yiibai      1 Feb 15 20:46 tmpcore.log
[yiibai@localhost ~]$ du -h  --max-depth=1
468K    ./test4
192K    ./project
4.0K    ./logs
4.0K    ./scripts
1.3M    .
[yiibai@localhost ~]$