精准定位项目中体积超标的存量大文件需聚焦目录、排除构建产物、识别冗余类型:限定项目根路径,用 -xdev 和 -prune 跳过 node_modules/dist/build 等目录,按扩展名(如 .psd/.mov/.core)、时间(-mtime -30)、权限(! -user dev)筛选,再以 du -h | sort -hr 排序输出前15名。

在大型开发项目里揪出体积超标的存量大文件,核心不是“扫全盘”,而是“精准打点”——聚焦项目目录、排除构建产物、识别冗余类型,再用 find 配合合理参数快速筛出真问题。
限定项目根目录,跳过构建和缓存目录
别从 / 或 ~ 开始扫,直接进项目根路径(比如 /home/dev/project-x),并主动跳过已知的非源码大块头:
- 加 -xdev 防止误入挂载的 Docker 卷或 NFS 共享目录
- 用 -path '*/node_modules' -prune、-path '*/dist' -prune、-path '*/build' -prune 排除标准构建产出目录
- 组合写法示例:
find /home/dev/project-x -xdev \( -path '*/node_modules' -o -path '*/dist' -o -path '*/build' \) -prune -o -type f -size +50M -print
按扩展名和命名特征锁定高危类型
开发项目中真正该被清理的大文件,往往不是代码,而是遗留的二进制资产或临时产物:
- 查未压缩的原始素材:-name "*.psd" -o -name "*.ai" -o -name "*.mov" -o -name "*.zip"
- 找可疑的打包残留:-name "backup.*" -o -name "*.tar" -o -name "*.7z"
- 识别日志类膨胀体:-name "debug.log" -o -name "dump.*" -o -name "*.core"
- 可合并进主命令:
find /home/dev/project-x -xdev -type f \( -name "*.psd" -o -name "*.mov" -o -name "dump.*" \) -size +20M -print
结合时间与权限缩小“非正常”范围
项目里长期存在的大文件未必有问题,但近期突然变大的、或权限异常的,大概率是冗余或误存:
- 查近30天新增且超10MB的文件:-mtime -30 -size +10M
- 找属主不是当前开发者、却体积巨大的文件:! -user dev -size +50M(把 dev 换成你实际用户名)
- 常见组合:
find /home/dev/project-x -xdev -type f -mtime -30 -size +10M ! -user dev -print
输出大小+排序,一眼定位“空间杀手”
光列出路径不够直观,加 du -h 和 sort -hr 直接看谁占得最多:
- 命令模板:
find /home/dev/project-x -xdev -type f -size +20M -exec du -h {} \; 2>/dev/null | sort -hr | head -15 - 结果会按人类可读大小倒序排列,前几行就是最值得优先处理的“大户”
- 如需带权限/修改时间等详情,换成:
find /home/dev/project-x -xdev -type f -size +20M -ls | sort -k7,7nr | head -10(-k7 是按第7列即大小数值排序)











