麒麟系统根分区占满却找不到大文件时,应先用sudo find / -type f -size +1G 2>/dev/null定位GB级文件,注意G必须大写;再用du逐层钻取分析目录占比,结合-xdev避免跨文件系统、lsof +L1检查已删除未释放文件,并排除/proc/kcore等伪文件干扰。

麒麟系统磁盘空间告急时,根分区显示100%占用却找不到明显大文件,往往是因为GB级单个文件藏在/var/log、/opt或/home深层目录中,必须用命令行绕过图形界面限制直接定位。
用find命令一步筛选大于1GB的文件
这是最直接的方法,不依赖索引、不扫描无关路径,只返回严格满足尺寸条件的普通文件。
按下Ctrl + Alt + T打开终端,确保你有足够权限访问目标路径。
执行命令:sudo find / -type f -size +1G 2>/dev/null。
命令中【-size +1G必须用大写字母G,不能写成+1g或+1024M】,否则会报错或漏匹配;2>/dev/null用于屏蔽“Permission denied”干扰信息,让结果干净可读。
若只想查用户主目录,把/换成~即可,速度更快且避开大量系统目录权限拒绝提示。
用du逐层钻取定位最大文件所在目录
当你不确定大文件在哪一级目录时,先用du缩小范围,再深入挖掘,比盲目find更省资源、更易理解路径逻辑。
第一步:切换到root权限,输入su并回车,再输入管理员密码。
第二步:执行cd / && sudo du -sh ./* 2>/dev/null | sort -hr | head -n 10,这会列出根目录下占比前十的子目录。
第三步:观察输出,重点关注/home、/var/log、/opt这类高风险区域;如果/home排第一,就立刻cd /home。
第四步:进入该目录后,重复执行du -sh ./* 2>/dev/null | sort -hr | head -n 10,不断向下钻取,直到某一层出现单个文件占几GB——那就是你要找的目标。
避免误扫和遗漏的关键补充操作
方法一:加-xdev参数防止跨文件系统卡死
执行sudo find / -xdev -type f -size +1G 2>/dev/null,它会跳过/proc、/sys、/mnt等挂载点,防止因扫描远程NFS或虚拟文件系统而长时间无响应。
方法二:检查“已删除但未释放”的文件
有时rm之后df -h空间没变,可能是文件被进程占用着,运行sudo lsof +L1,找到状态为deleted的条目,kill对应PID或重启服务即可真正释放空间。
方法三:排除/proc/kcore这类伪文件干扰
上面find命令可能返回/proc/kcore(常显示511G),但它不是真实文件,只是内核内存映射,【切勿尝试删除或移动该路径下任何内容】,可在find中加-path "/proc" -prune -o跳过整个proc目录。

















