快速定位linux大文件有五种方法:一、du+sort组合统计排序;二、find+ls按大小列排序;三、find -size直接筛选阈值文件;四、ncdu交互式可视化分析;五、python脚本定制化扫描。

如果您需要快速定位Linux系统中占用磁盘空间最大的文件,可能是由于磁盘告警、服务异常或存储资源紧张。以下是多种可立即执行的排查方法:
一、使用du与sort组合命令
该方法通过递归统计所有文件大小,并以人类可读格式排序,适用于大多数标准环境,无需额外安装工具。
1、在目标目录(例如根目录)执行:du -ah / 2>/dev/null | sort -rh | head -n 10
2、若仅关注当前目录及其一级子项:du -ah . | sort -rh | head -n 10
3、为加快响应并排除权限错误干扰,添加2>/dev/null重定向错误输出
4、注意:/ 路径需谨慎使用,建议优先限定为 /home、/var/log 或 /tmp 等具体分区挂载点
二、使用find配合ls进行精确筛选
该方法利用find定位文件后交由ls -lh获取带单位的详细尺寸,并按第5列(大小字段)排序,结果直观且保留完整路径信息。
1、查找整个 /var 目录下最大的10个文件:find /var -type f -exec ls -lh {} \; 2>/dev/null | sort -rh -k5 | head -n 10
2、限制搜索深度以提升效率:find /var -maxdepth 3 -type f -exec ls -lh {} \; 2>/dev/null | sort -rh -k5 | head -n 10
3、关键提示:-k5 表示按ls -lh输出的第五列(即文件大小)排序;若系统locale影响列对齐,可改用awk提取大小字段
三、使用find直接按字节大小筛选大文件
该方法不依赖排序,而是通过-size参数直接匹配指定阈值以上的文件,适合快速识别超限文件(如>1GB),执行速度快、资源消耗低。
1、查找大于1GB的所有文件:find / -xdev -type f -size +1G 2>/dev/null
2、查找大于500MB但小于1GB的文件:find / -xdev -type f -size +500M -size -1G 2>/dev/null
3、同时显示大小信息:find / -xdev -type f -size +1G -exec ls -lh {} \; 2>/dev/null
4、-xdev选项确保不跨文件系统搜索,避免意外进入/mnt、/proc等虚拟或挂载路径
四、使用ncdu交互式分析工具
ncdu提供基于终端的可视化界面,支持键盘导航、目录钻取和颜色高亮,特别适合深入分析复杂目录结构下的空间分布。
1、安装ncdu(Debian/Ubuntu):sudo apt-get install ncdu
2、安装ncdu(CentOS/RHEL):sudo yum install ncdu 或 sudo dnf install ncdu
3、扫描指定路径:ncdu /var/log
4、在界面中按方向键浏览,回车进入子目录,d键删除选中文件,?键调出帮助菜单
一、功能简介本软件完全适应大、中、小型网站建设需要,让您用很便宜的虚拟主机空间也可以开通4个独立的网站!久久企业网站后台管理系统各种版本开发基础架构均为php+mysql+div+css+伪静态,迎合搜索引擎排名的喜好。另外值得一提的是本站特色的TAG系统可为您的网站做出无限分类,不用任何设置全站ULR伪静态!本建站系统除了有产品发布、新闻(软文)发布、订单管理系统和留言反馈等一些最基本的功能之外
5、首次运行建议加--exclude选项跳过临时文件:ncdu --exclude='*.tmp' /tmp
五、使用Python脚本定制化扫描
该方法适用于需要嵌入自动化流程、添加日志记录或集成告警逻辑的场景,可绕过shell管道限制并精确控制遍历行为。
1、创建脚本文件largest_finder.py,内容如下:
import os, sys
def scan_dir(path, limit=10):
files = []
for root, _, filenames in os.walk(path):
for name in filenames:
try:
fp = os.path.join(root, name)
size = os.stat(fp).st_size
if size > 0: files.append((size, fp))
except (OSError, IOError): pass
return sorted(files, reverse=True)[:limit]
if len(sys.argv)
print("Usage: python3 largest_finder.py
exit(1)
for size, path in scan_dir(sys.argv[1]):
print(f"{size:>12} {path}")
2、赋予执行权限并运行:chmod +x largest_finder.py && ./largest_finder.py /home
3、脚本默认跳过无法访问的路径,且不统计0字节文件,避免无效结果干扰









