Linux之du命令

du命令的作用是估计文件系统的磁盘已使用量,常用于查看文件或者目录所占的磁盘量。du命令 也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。

命令语法

du [选项][文件]

命令选项

  • -a, —all 显示目录中个别文件的大小。
  • -B, —block-size=大小 使用指定字节数的块
  • -b, —bytes 显示目录或文件大小时,以byte为单位。
  • -c, —total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
  • -D, —dereference-args 显示指定符号链接的源文件大小。
  • -H, —si 与-h参数相同,但是K,M,G是以1000为换算单位。
  • -h, —human-readable 以K,M,G为单位,提高信息的可读性。
  • -k, —kilobytes 以KB(1024bytes)为单位输出。
  • -l, —count-links 重复计算硬件链接的文件。
  • -m, —megabytes 以MB为单位输出。
  • -L<符号链接>, —dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
  • -P, —no-dereference 不跟随任何符号链接(默认)
  • -0, —null 将每个空行视作0 字节而非换行符
  • -S, —separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
  • -s, —summarize 仅显示总计,只列出最后加总的值。
  • -x, —one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
  • -X<文件>, —exclude-from=<文件> 在<文件>指定目录或文件。
  • —apparent-size 显示表面用量,而并非是磁盘用量;虽然表面用量通常会小一些,但有时它会因为稀疏文件间的”洞”、内部碎片、非直接引用的块等原因而变大。
  • —files0-from=F 计算文件F中以NUL结尾的文件名对应占用的磁盘空间如果F的值是”-“,则从标准输入读入文件名
  • —exclude=<目录或文件> 略过指定的目录或文件。
  • —max-depth=N 显示目录总计(与—all 一起使用计算文件)当N为指定数值时计算深度为N,等于0时等同—summarize
  • —si 类似-h,但在计算时使用1000 为基底而非1024
  • —time 显示目录或该目录子目录下所有文件的最后修改时间
  • —time=WORD 显示WORD时间,而非修改时间:atime,access,use,ctime 或status
  • —time-style=样式 按照指定样式显示时间(样式解释规则同”date”命令):full-iso,long-iso,iso,+FORMAT
  • —help 显示此帮助信息并退出
  • —version 显示版本信息并退出

显示目录的大小

  1. du
  2. 0 ./lib
  3. 12 ./bin/rumenz
  4. 12 ./bin
  5. 0 ./sbin/doc
  6. 0 ./sbin/info
  7. 4 ./sbin
  8. 0 ./doc/js
  9. 0 ./doc/css
  10. 0 ./doc/html/rumenz
  11. 0 ./doc/html/rumenzz
  12. 4 ./doc/html
  13. 4 ./doc
  14. 0 ./rumenz/lib/test
  15. 0 ./rumenz/lib/info
  16. 0 ./rumenz/lib
  17. 0 ./rumenz
  18. 52 ./one
  19. 104 .

只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的104为当前目录的总大小

显示指定文件所占的磁盘空间

  1. > du rumenz.txt

查看指定目录的所占空间

  1. > du src
  2. 0 src/lib
  3. 12 src/bin/rumenz
  4. 12 src/bin
  5. 0 src/sbin/doc
  6. 0 src/sbin/info
  7. 4 src/sbin
  8. 0 src/doc/js
  9. 0 src/doc/css
  10. 0 src/doc/html/rumenz
  11. 0 src/doc/html/rumenzz
  12. 4 src/doc/html
  13. 4 src/doc
  14. 0 src/rumenz/lib/test
  15. 0 src/rumenz/lib/info
  16. 0 src/rumenz/lib
  17. 0 src/rumenz
  18. 52 src/one
  19. 104 src/

最后一行是整个目录src所占的磁盘空间

查看指定目录的所占空间,提高信息的可读性

  1. > du -h src
  2. 0 src/lib
  3. 12K src/bin/rumenz
  4. 12K src/bin
  5. 0 src/sbin/doc
  6. 0 src/sbin/info
  7. 4.0K src/sbin
  8. 0 src/doc/js
  9. 0 src/doc/css
  10. 0 src/doc/html/rumenz
  11. 0 src/doc/html/rumenzz
  12. 4.0K src/doc/html
  13. 4.0K src/doc
  14. 0 src/rumenz/lib/test
  15. 0 src/rumenz/lib/info
  16. 0 src/rumenz/lib
  17. 0 src/rumenz
  18. 52K src/one
  19. 104K src/

最后一行是整个目录src所占的磁盘空间,加上了单位,可读性变强

显示多个文件所占的空间

  1. > du a.log b.log
  2. 0 a.log
  3. 0 b.log

只显示目录的总大小

  1. > du -s /root
  2. 826036 /root

统计总用量(-s代表summarize

只显示目录的总大小,提高可读性

  1. > du -sh /root/
  2. 807M /root/

文件和目录的大小都显示

  1. > du -ah src/
  2. 0 src/lib
  3. 0 src/bin/rumenz/5.txt
  4. 0 src/bin/rumenz/3.txt
  5. 8.0K src/bin/rumenz/5.txt~
  6. 4.0K src/bin/rumenz/1.txt
  7. 12K src/bin/rumenz
  8. 12K src/bin
  9. 0 src/sbin/doc
  10. 0 src/sbin/info
  11. 4.0K src/sbin/rumenz.txt
  12. 4.0K src/sbin
  13. 0 src/doc/js
  14. 0 src/doc/css
  15. 4.0K src/doc/html/1.sh
  16. 0 src/doc/html/1.txt
  17. 0 src/doc/html/2.txt
  18. 0 src/doc/html/rumenz/1.txt
  19. 0 src/doc/html/rumenz/2.txt
  20. 0 src/doc/html/rumenz
  21. 0 src/doc/html/rumenzz/1.txt~
  22. 0 src/doc/html/rumenzz/1.txt
  23. 0 src/doc/html/rumenzz
  24. 0 src/doc/html/1_link.txt
  25. 4.0K src/doc/html
  26. 0 src/doc/rumenz.txt
  27. 4.0K src/doc
  28. 0 src/rumenz/lib/test
  29. 0 src/rumenz/lib/info
  30. 0 src/rumenz/lib
  31. 0 src/rumenz
  32. 4.0K src/InfiniteLoop$1.class
  33. 4.0K src/InfiniteLoop.class
  34. 12K src/nohup.out
  35. 4.0K src/InfiniteLoop.java
  36. 4.0K src/rumenz.txt
  37. 4.0K src/Rumenz.txt
  38. 0 src/ABC1.png
  39. 0 src/AB2.png
  40. 0 src/ABC123.png
  41. 0 src/A123.png
  42. 0 src/b.log
  43. 4.0K src/one/rumenz.tar.gz
  44. 0 src/one/1.txt
  45. 0 src/one/2.txt
  46. 48K src/one/etc.tar.gz
  47. 52K src/one
  48. 4.0K src/a.log
  49. 108K src/

显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和

  1. > du -c a.log b.log
  2. 4 a.log
  3. 0 b.log
  4. 4 total

加上-c选项后,du不仅显示两个目录各自占用磁盘空间的大小,还在最后一行统计它们的总和。

按照空间大小排序

  1. > du -ah src | sort -nr
  2. 108K ./src
  3. 108K .
  4. 52K ./src/one
  5. 48K ./src/one/etc.tar.gz
  6. 12K ./src/nohup.out
  7. 12K ./src/bin/rumenz
  8. 12K ./src/bin
  9. 8.0K ./src/bin/rumenz/5.txt~
  10. 4.0K ./src/sbin/rumenz.txt
  11. 4.0K ./src/sbin
  12. 4.0K ./src/Rumenz.txt
  13. 4.0K ./src/rumenz.txt
  14. 4.0K ./src/one/rumenz.tar.gz
  15. 4.0K ./src/InfiniteLoop.java
  16. 4.0K ./src/InfiniteLoop.class
  17. 4.0K ./src/InfiniteLoop$1.class
  18. 4.0K ./src/doc/html/1.sh
  19. 4.0K ./src/doc/html
  20. 4.0K ./src/doc
  21. 4.0K ./src/bin/rumenz/1.txt
  22. 4.0K ./src/a.log
  23. 0 ./src/sbin/info
  24. 0 ./src/sbin/doc
  25. 0 ./src/rumenz/lib/test
  26. 0 ./src/rumenz/lib/info
  27. 0 ./src/rumenz/lib
  28. 0 ./src/rumenz
  29. 0 ./src/one/2.txt
  30. 0 ./src/one/1.txt
  31. 0 ./src/lib
  32. 0 ./src/doc/rumenz.txt
  33. 0 ./src/doc/js
  34. 0 ./src/doc/html/rumenzz/1.txt~
  35. 0 ./src/doc/html/rumenzz/1.txt
  36. 0 ./src/doc/html/rumenzz
  37. 0 ./src/doc/html/rumenz/2.txt
  38. 0 ./src/doc/html/rumenz/1.txt
  39. 0 ./src/doc/html/rumenz
  40. 0 ./src/doc/html/2.txt
  41. 0 ./src/doc/html/1.txt
  42. 0 ./src/doc/html/1_link.txt
  43. 0 ./src/doc/css
  44. 0 ./src/b.log
  45. 0 ./src/bin/rumenz/5.txt
  46. 0 ./src/bin/rumenz/3.txt
  47. 0 ./src/ABC1.png
  48. 0 ./src/ABC123.png
  49. 0 ./src/AB2.png
  50. 0 ./src/A123.png

输出当前目录下各个子目录所使用的空间

  1. > du -h --max-depth src
  2. 0 src/lib
  3. 12K src/bin
  4. 4.0K src/sbin
  5. 4.0K src/doc
  6. 0 src/rumenz
  7. 52K src/one
  8. 108K src

返回笔记列表
入门小站