du
(disk usage)命令用于估算文件或目录的磁盘空间使用情况。它可以递归地计算每个文件或目录占用的空间,是监控文件系统中空间占用情况的常用工具。
基本语法:
du [选项] [文件/目录...]
常用选项:
-h
:以可读的格式显示磁盘使用情况(例如:KB、MB、GB)。-s
:只显示每个参数的总大小,不递归列出每个子目录的大小。-a
:显示目录和文件的磁盘使用情况。默认情况下,du
只显示目录的大小。-c
:显示所有参数的总计大小。-k
:以KB为单位显示磁盘使用情况(默认单位)。-m
:以MB为单位显示磁盘使用情况。-d <深度>
:指定递归显示的目录深度,例如-d 1
只显示当前目录及其一级子目录的大小。--max-depth=<深度>
:与-d
类似,限制递归的目录层级深度。--exclude=<模式>
:排除与给定模式匹配的文件或目录。--apparent-size
:显示文件的表观大小,而不是实际磁盘使用情况(表观大小是文件的逻辑大小,而实际大小可能因为磁盘块分配和压缩等因素有所不同)。
-
显示当前目录及其子目录的大小:
du
输出格式:
4 ./subdir1 8 ./subdir2 12 .
-
以人类可读的格式显示当前目录及其子目录的大小:
du -h
输出格式:
4.0K ./subdir1 8.0K ./subdir2 12K .
-
只显示当前目录的总大小:
du -sh
输出格式:
12K .
-
显示所有文件和目录的大小:
du -ah
输出格式:
4.0K ./file1.txt 8.0K ./file2.txt 4.0K ./subdir1 16K .
-
显示指定目录及其一级子目录的大小:
du -h --max-depth=1
或者使用
-d
选项:du -h -d 1
输出格式:
4.0K ./subdir1 8.0K ./subdir2 12K .
-
显示目录的总计大小:
du -ch
输出格式:
4.0K ./subdir1 8.0K ./subdir2 12K . 12K total
-
排除某个子目录的大小:
du -h --exclude="subdir1"
输出格式:
8.0K ./subdir2 8.0K .
-
显示特定文件的大小:
du -h file1.txt
输出格式:
4.0K file1.txt
-
显示文件的表观大小(而不是实际磁盘使用大小):
du -h --apparent-size
总结:
du
命令主要用于分析文件系统中文件和目录的磁盘空间占用情况,结合不同的选项可以灵活查看目录结构下的大小分布,尤其适用于查找磁盘空间占用过多的文件或目录。