Linux 服务器大文件定位命令解析:find + grep 组合应用

      发布在:后端技术      评论:0 条评论

在 Linux 服务器维护中,定位大文件是排查磁盘空间问题的关键步骤。以下是一个经典命令的详细解析:

sudo find / -xdev -type f -size +100M -exec ls -lh {} \; | \
  grep -Ev '/var/lib/docker|/snap/|/usr/lib|/proc/'

515466f0-c0df-4d2f-9834-fc33c81bae93

一、命令拆解

命令部分作用解析
sudo以管理员权限执行,避免因权限不足漏查系统文件
find /从根目录开始递归搜索
-xdev不跨越文件系统边界(不搜索挂载的其他磁盘/NFS)
-type f仅搜索普通文件(排除目录、设备文件等)
-size +100M筛选大小超过 100MB 的文件
-exec ls -lh {} \;对每个匹配文件执行 ls -lh,显示人类可读的文件大小/权限/时间等信息
| grep -Ev 'PATTERN'管道过滤,排除指定路径(正则表达式排除)

二、重点排除路径解析

排除项典型场景说明
/var/lib/dockerDocker 容器存储目录,容器数据需特殊处理避免损坏
/snapUbuntu Snap 包安装目录,自动维护无需手动清理
/usr/lib系统核心库目录,随意操作可能导致系统崩溃
/proc虚拟文件系统(进程信息),非真实文件无需处理

使用du命令列出指定目录文件夹大小并排序

sudo du -h --max-depth=1 /www/wwwroot/ | sort -hr

命令解释:

  1. du 是磁盘使用统计命令

  2. -h 参数让结果以人性化格式显示(自动使用 KB/MB/GB 单位)

  3. --max-depth=1 表示只统计直接子目录和文件

  4. 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

注意事项:

  1. 如果目录需要特权访问,建议在命令前加 sudo

  2. 若需要同时显示隐藏文件,可以添加 -a 参数

  3. 如果要查看更深的目录层级,可以修改 --max-depth 参数值

这个方案能直观展示目录大小分布,帮助你快速定位占用空间最大的项目。


相关文章
热门推荐