linux中定位大文件有五种方法:一、find按大小筛选;二、du与sort组合排序统计;三、ncdu交互式分析;四、find结合时间属性定位近期大文件;五、df与lsof排查被删除但仍占用空间的文件。

如果您需要在Linux系统中定位占用磁盘空间较大的文件,可能是为了释放存储或排查异常增长的文件。以下是几种有效的查找方法:
一、使用find命令按文件大小筛选
该方法通过find命令遍历指定目录,依据文件大小条件匹配并列出结果,适用于精确控制最小尺寸阈值的场景。
1、打开终端,切换至目标挂载点或根目录(如需全局搜索可从/开始)。
2、执行命令:find /path/to/search -type f -size +100M -ls,其中“+100M”表示大于100MB的普通文件,“-ls”用于显示详细信息。
3、若仅需显示路径和大小,可改用:find /path/to/search -type f -size +100M -exec ls -lh {} \; | awk '{print $5, $9}'。
二、使用du和sort组合排序统计
该方法先用du递归计算各文件/目录占用空间,再通过sort按数值大小倒序排列,便于快速识别顶部大项。
1、运行命令:du -h /path/to/search 2>/dev/null | sort -hr | head -n 20,其中“-h”输出人类可读格式,“-hr”实现逆序数值排序,“head -n 20”限制显示前20条。
2、若需排除目录、只看文件,可添加-filter:find /path/to/search -type f -print0 | xargs -0 du -h 2>/dev/null | sort -hr | head -n 20。
三、使用ncdu交互式磁盘使用分析工具
ncdu提供基于终端的可视化界面,支持键盘导航、实时刷新与子目录钻取,适合深度探查复杂目录结构。
1、安装ncdu:sudo apt install ncdu(Debian/Ubuntu)或sudo yum install ncdu(RHEL/CentOS)。
2、执行扫描:ncdu /path/to/search,等待统计完成。
3、使用方向键选择高亮条目,按Enter进入子目录,按d键可删除选中项(需确认)。
四、使用ls配合find定位最近修改的大文件
该方法结合时间属性与大小筛选,适用于怀疑近期生成或扩大的大文件场景。
1、执行命令:find /path/to/search -type f -size +50M -mtime -7 -ls,其中“-mtime -7”表示7天内修改过的文件。
2、如需按修改时间倒序排列输出,追加管道:find /path/to/search -type f -size +50M -mtime -7 -print0 | xargs -0 ls -ltSh | head -n 15。
五、使用df与inode结合排查隐藏大文件
当df显示磁盘已满但du统计总和明显偏小时,可能存在已被删除但仍被进程占用的“幽灵文件”,该方法用于识别此类情况。
1、检查磁盘使用率:df -h,确认具体满载分区。
2、查看对应分区的已删除但仍在使用的文件:lsof +L1 /mount/point(如/mount/point为/dev/sda1挂载点)。
3、定位到对应进程后,可终止进程释放空间:kill -9 PID,其中PID来自lsof输出第二列。










