du磁盘占用分析指令

du​(disk usage的缩写,磁盘使用情况)是一个标准Unix程序,用于估量文件或文件夹的磁盘使用情况。

默认情况下,du​显示当前目录每个文件与目录的被分配磁盘空间的情况。链接文件将会显示其本身大小而非其链接对象;目录则会显示其内容的大小。

用途

  • 检查某个目录的大小:用来查看一个目录及其子目录占用的空间,以便做清理或备份。
  • 找出占用大量磁盘空间的文件或目录:通过 du​ 命令,你可以定位磁盘占用较大的文件或子目录,以便做进一步操作。
  • 查看文件系统使用情况:可以通过限制深度来快速查看文件系统中各个目录的占用情况。

用法

du [options] [file|directory…]

定制化显示内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#-h(human-readable):以人类可读的格式显示文件大小(例如 KB、MB、GB 等)。
du -h /path/to/directory

#-s(summarize):只显示指定目录的总计大小,不显示子目录的大小。
du -sh /path/to/directory

#-a(all):显示目录下所有文件和子目录的磁盘使用情况,而不仅仅是目录。
du -ah /path/to/directory # -s和-a存在冲突不能一起使用

#-c(total):总计。
du -ch /path/to/directory

#-d <level>:限制显示的目录深度。<level> 是你想显示的目录深度。例如,-d 1
#只显示当前目录和它的一级子目录的磁盘使用情况。-d 0 等价于 -s
du -d 1 /path/to/directory

#-L:计算符号链接(symlink)指向的文件的磁盘使用情况,而不是符号链接本身。
du -L /path/to/directory

#-x:限制 du 仅对当前文件系统进行操作,避免跨越不同的挂载点。
du -x /path/to/directory

#-exclude=<pattern>:排除匹配特定模式的文件或目录。
du --exclude="*.log" /path/to/directory

#统计当前目录包含隐藏文件的磁盘使用情况
du -sk .[!.]* *| sort -n

总结

  • du是一个很好的命令,可以帮助查询指定目录文件系统的磁盘使用情况,帮助定位目录下占用最多的文件和子目录。

  • du显示的是文件或目录的 磁盘占用空间,即文件在磁盘上实际使用的空间。这个值考虑了文件系统的块大小(block size)和文件的实际存储情况。

  • du​ 考虑文件系统的块大小(通常为 4KB 或 8KB 等),因此可能会显示比文件实际大小更大的值。如果文件内容较小但占用了完整的磁盘块,则 du​ 会显示文件占用的最小块数。