find可按大小区间精准查找大文件,-size支持+、-及g/m/k单位组合,配合-exec直接执行ls、du、truncate或mv等操作,再通过2>/dev/null、-prune和-maxdepth优化性能。

直接用 find 按大小区间查大文件,关键在 -size 的单位和符号组合,再配合 -exec 做后续操作,不用先列再手动处理。
按大小区间精准匹配文件
-size 支持多种单位(G、M、k)和比较逻辑:
+1G 表示大于 1GB(即 ≥ 1.000000001 GB)
-2G 表示小于 2GB(即
两者组合就能限定区间。例如找「大于 1GB 且小于 5GB」的文件:
find /var/log -type f -size +1G -size -5G- 注意:多个
-size条件是“与”关系,顺序无关 - 若要包含等于边界值的情况(如刚好 1GB),需用
-size 1G单独匹配,再用or连接
查出后立即执行安全操作
避免先查再复制粘贴路径,用 -exec 一步到位。常用操作包括:
- 显示详细信息:
find /home -type f -size +1G -exec ls -lh {} \; - 只看大小和路径(更清晰):
find /tmp -type f -size +1G -exec du -sh {} \; - 安全清空内容(保留文件结构):
find /var/log -type f -size +1G -exec truncate -s 0 {} \; - 移动到归档目录(需提前创建):
find /data -type f -size +1G -exec mv {} /archive/ \;
⚠️ 提示:加 -print 或先加 echo 测试命令逻辑,例如 -exec echo "will remove: {}" \;。
跳过权限错误与挂载点干扰
扫全盘时常见 Permission denied 或外接设备拖慢速度。推荐加过滤:
- 忽略错误输出:
2>/dev/null放在命令末尾 - 排除挂载点(如
/mnt、/media):find / -path '/mnt' -prune -o -path '/media' -prune -o -type f -size +1G -exec du -sh {} \; - 限制搜索深度防卡死:
-maxdepth 3(只查根下三层)
结合 du 和排序快速定位最大目标
如果想直观看到“谁最占空间”,用 du 配合 find 更有效:
- 列出所有 ≥1GB 的文件并按大小倒序:
find / -type f -size +1G -exec du -sh {} + 2>/dev/null | sort -rh - 只取前 10 个:
... | head -n 10 -
du -sh后接+(而非\;)可批量传参,效率更高











