linux如何查看目录大小:du命令实操
linux如何查看目录大小,优先使用du命令,du是磁盘占用统计工具,基础语法du-sh目录路径,-s代表汇总总大小,-h代表人性化单位展示,适合需要快速获取单个目录总占用的运维人员;du默认递归扫描所有子目录与文件,不带参数时会列出每一层子目录的占用,适合排查目录内部空间分布,该方法在只读权限不足、目录内存在大量软链接、挂载点嵌套时,统计结果会出现偏差,你需要提前确认当前账号对目标目录具备可读权限。
linux如何查看目录大小的常用du参数
你可以搭配不同参数调整输出结果,du-sh*能够直接列出当前目录下所有一级子目录和文件的大小,方便对比同级目录占用;du-sh--max-depth=2目录路径,限制递归深度为2层,只展示到二级子目录,减少海量输出刷屏,适合结构复杂的大目录。du-ah会同时统计文件和目录,不带a参数时du默认只统计目录,忽略单独文件。
du-shx目录路径可以跳过内部其他挂载点,不会统计目录里嵌套的磁盘分区数据,很多服务器数据目录会单独挂载磁盘,不加-x参数会把挂载分区的空间一并计入,造成统计数值偏大。
| 命令 | 输出内容 | 适用场景 |
|---|---|---|
| du-sh目录 | 目录总大小,人性化单位 | 快速查总占用 |
| du-sh--max-depth=1 | 一级子目录大小汇总 | 定位占用高的子目录 |
| du-shx目录 | 排除内部挂载点统计 | 服务器多分区环境 |
df命令不能用来查看单个目录大小,df只统计整块磁盘分区的整体使用率,它的统计对象是文件系统,不是目录,很多新手直接用df查看目录,拿到的是整个磁盘的容量,不是目标目录真实占用。
软链接本身只占用极少字节,du默认统计软链接指向的真实文件大小,如果你只想统计链接本身,不追踪源文件,可以加上-P参数,du-shP软链接路径。
权限不足会报错。
目录内存在大量已删除但进程仍持有句柄的文件时,du统计不到这部分空间,这类空间只能通过lsof结合磁盘分区信息排查,du的统计逻辑是读取磁盘上现存文件与目录块,无法读取已经标记删除、等待进程释放的文件块。
统计超大目录时,du扫描速度会随文件数量增加而变慢,你可以把输出重定向到文本文件,命令写法du-sh--max-depth=3/data>dirsize.txt,后台慢慢扫描,避免终端长时间卡住,扫描完成后打开文件查看结果。
ext4、xfs主流文件系统都支持du命令统计,不同文件系统的块大小设置会轻微影响最终数值展示,数值差异一般在单个块大小以内,不会影响空间排查判断。
