使用 du 命令可高效查看 Linux 文件夹磁盘占用:1. 总览用 du -sh;2. 分层分析用 du -h --max-depth=1 | sort -hr;3. 定位大文件用 du -sh * | sort -hr | head -n 10;4. 过滤用 --exclude;5. 监控用 watch。

如果您需要快速了解 Linux 系统中某个文件夹实际占用的磁盘空间,但不确定具体命令或参数组合,则可能是由于未使用合适选项导致输出冗长、不可读或遗漏关键信息。以下是查看文件夹大小的多种实用方法:
一、基础总览:显示目录整体大小
该方法用于快速获取目标目录的汇总空间占用,避免逐层展开子目录,适用于初步判断是否异常膨胀。
1、执行 du -sh /path/to/directory,其中 -s 表示仅显示总计,-h 表示以 KB/MB/GB 等人类可读格式输出。
2、若需统计当前目录,直接运行 du -sh .。
3、若权限不足导致报错,可在命令前添加 sudo,例如 sudo du -sh /var/log。
二、分层分析:查看一级子目录分布
该方法用于识别目录内部哪些子项占用最多空间,便于后续针对性清理或归档。
1、运行 du -h --max-depth=1 /path/to/directory,限制递归深度为 1,仅列出直接子目录及文件大小。
2、为提升可读性,可追加排序:执行 du -h --max-depth=1 /path/to/directory | sort -hr,使最大项排在最上方。
3、若仅关注目录(排除普通文件),可结合 shell glob:运行 du -sh /path/to/directory/*/ | sort -hr。
三、精准定位:查找最大子目录或文件
该方法用于在深层嵌套结构中快速定位空间消耗源头,尤其适用于日志、缓存类目录。
1、执行 du -sh /path/to/directory/* | sort -hr | head -n 10,列出占用前 10 的直接子项。
2、若需包含隐藏目录(如 .cache),改用 du -sh /path/to/directory/.* /path/to/directory/* 2>/dev/null | sort -hr | head -n 10。
3、对整个路径树进行深度扫描并排序:运行 find /path/to/directory -type d -print0 | xargs -0 du -sh 2>/dev/null | sort -hr | head -n 5。
四、过滤干扰:排除特定类型内容后统计
该方法用于在存在大量临时文件、日志或缓存时获得更真实的业务数据占用视图。
1、排除所有 .log 文件:执行 du -sh --exclude="*.log" /path/to/directory。
2、排除指定子目录(如 temp):运行 du -sh --exclude=temp /path/to/directory。
3、同时排除多个模式:使用 --exclude 多次,例如 du -sh --exclude="*.tmp" --exclude="cache" --exclude=".git" /path/to/directory。
五、动态监控:实时观察目录增长趋势
该方法用于持续跟踪关键目录(如日志、上传存储)的空间变化,及时发现异常写入行为。
1、每 30 秒刷新一次根下 /var/log 总大小:运行 watch -n 30 "du -sh /var/log"。
2、监控并高亮超限阈值(如超过 500MB):执行 watch -n 60 'du -sh /var/log | awk \'{if($1+0 > 500) print \"\033[1;31mWARNING:\033[0m \" $0; else print $0}\''。
3、将监控结果追加至日志文件以便回溯:运行 watch -n 300 'echo \"$(date): $(du -sh /data/uploads)\" >> /var/log/dirsize.log'。










