在Linux系统中,du
(Disk Usage)命令用于计算文件和目录的磁盘使用空间。关于文件夹的du
大小,以下是关键点解析:
du
输出的含义du <目录名>
会递归显示该目录下每个子目录的磁盘使用量(以磁盘块为单位,通常为1块=512字节或4KB,取决于系统)。bash
du -sh /path/to/directory # -s: 仅显示总计;-h: 人类可读格式(KB/MB/GB)
输出示例:
4.8G /home/user/documents
表示该目录实际占用 4.8GB 磁盘空间。du
与 ls
的区别du
:计算文件实际占用的磁盘空间(考虑文件系统块分配、稀疏文件等)。ls -l
:显示文件的逻辑大小(即文件内容实际字节数,可能小于磁盘占用)。
示例:
一个1字节的文件在ls
中显示为1字节,但du
可能显示4KB(因文件系统按块分配)。
du
大小的关键因素tune2fs -l /dev/sdX | grep 'Block size'
查看)。du
默认只计算一次硬链接文件的空间。du
报告实际分配的块,而非文件逻辑大小。du
默认不跨越文件系统边界(需加 -x
选项限制)。选项 | 作用 |
---|---|
-h |
以KB/MB/GB显示 |
-s |
仅显示总计 |
--apparent-size |
显示逻辑大小(类似ls ) |
-a |
显示每个文件的占用 |
-c |
最后输出总计 |
--max-depth=N |
限制递归深度 |
示例:
bash
du -h --max-depth=1 /var # 查看/var下一级子目录大小
du
与df
不一致:可能是已删除文件仍被进程占用(通过 lsof +L1
检查未释放空间)。find
定位:
bash
find /path -type f -size +100M -exec du -h {} +
du
报告的文件夹大小是其在磁盘上的实际占用空间,而非文件内容的简单相加。理解文件系统块分配、硬链接等机制有助于更准确分析存储使用情况。如需快速查看目录总大小,du -sh
是最常用的命令。