用du定位大文件的核心是“计算大小+排序+截取顶部结果”,常用命令为du -h . | sort -hr | head -n 5;若只查纯文件,用find . -type f -exec du -h {} + | sort -hr | head -n 5;可加-size过滤(如+100m)、--exclude跳过无关路径。

用 du 找出占用最大的文件,核心是“计算大小 + 排序 + 截取顶部结果”,不依赖图形界面,终端一条命令就能定位问题文件。
基础组合:du + sort + head 定位前N个大文件
最常用、最直接的方式:
- du -h . | sort -hr | head -n 5 —— 查当前目录及子目录下所有项(含文件和文件夹),按人类可读大小倒序排,取前5行
- 注意:
du默认统计目录时包含其全部子内容,所以结果里既有单个大文件,也可能有“看似很大”的目录。若只关心纯文件,需配合find
精准筛选纯文件(排除目录干扰)
避免把一个大目录当成“大文件”误判,推荐用 find 先限定类型再统计:
-
find . -type f -exec du -h {} + | sort -hr | head -n 5 —— 只查普通文件,
-exec du -h {} +高效批量处理,比\;更快 - 如提示“Argument list too long”,可改用
xargs: find . -type f -print0 | xargs -0 du -h | sort -hr | head -n 5
按指定大小过滤,跳过小文件
节省排序开销,尤其在海量小文件场景下更高效:
- find . -type f -size +100M -exec du -h {} + | sort -hr | head -n 5 —— 只统计大于100MB的文件
- 单位支持:
k(KB)、M(MB)、G(GB),如+2G表示大于2GB
排除干扰路径,聚焦关键区域
跳过缓存、日志、临时目录等已知非重点区域,加快分析速度:
- du -h --exclude='./log' --exclude='./cache' --exclude='./tmp' . | sort -hr | head -n 5
- 也可用
--exclude-from=file.txt批量读取要忽略的路径列表










