在 Linux 服务器维护中,定位大文件是排查磁盘空间问题的关键步骤。以下是一个经典命令的详细解析:
sudo find / -xdev -type f -size +100M -exec ls -lh {} \; | \ grep -Ev '/var/lib/docker|/snap/|/usr/lib|/proc/'
一、命令拆解
命令部分 | 作用解析 |
---|---|
sudo | 以管理员权限执行,避免因权限不足漏查系统文件 |
find / | 从根目录开始递归搜索 |
-xdev | 不跨越文件系统边界(不搜索挂载的其他磁盘/NFS) |
-type f | 仅搜索普通文件(排除目录、设备文件等) |
-size +100M | 筛选大小超过 100MB 的文件 |
-exec ls -lh {} \; | 对每个匹配文件执行 ls -lh ,显示人类可读的文件大小/权限/时间等信息 |
| grep -Ev 'PATTERN' | 管道过滤,排除指定路径(正则表达式排除) |
二、重点排除路径解析
排除项 | 典型场景说明 |
---|---|
/var/lib/docker | Docker 容器存储目录,容器数据需特殊处理避免损坏 |
/snap | Ubuntu Snap 包安装目录,自动维护无需手动清理 |
/usr/lib | 系统核心库目录,随意操作可能导致系统崩溃 |
/proc | 虚拟文件系统(进程信息),非真实文件无需处理 |
使用du命令列出指定目录文件夹大小并排序
sudo du -h --max-depth=1 /www/wwwroot/ | sort -hr
命令解释:
du
是磁盘使用统计命令-h
参数让结果以人性化格式显示(自动使用 KB/MB/GB 单位)--max-depth=1
表示只统计直接子目录和文件sort -hr
中的:-h
识别人类可读数字单位-r
反向排序(从大到小)
输出示例:
12G /www/wwwroot/project3
8.4G /www/wwwroot/project1
5.2G /www/wwwroot/project2
632M /www/wwwroot/demo
56M /www/wwwroot/test
4.0K /www/wwwroot/readme.txt
注意事项:
如果目录需要特权访问,建议在命令前加
sudo
若需要同时显示隐藏文件,可以添加
-a
参数如果要查看更深的目录层级,可以修改
--max-depth
参数值
这个方案能直观展示目录大小分布,帮助你快速定位占用空间最大的项目。
相关文章