使用find命令按大小查找文件,语法为find [路径] -size 大小,支持+(大于)、-(小于)和精确值,单位包括c(字节)、k(KB)、M(MB)、G(GB),如find . -size +100M查找当前目录大于100MB的文件。

在Linux系统中,按文件大小查找文件通常使用find命令。这个命令功能强大,支持多种条件筛选,包括文件大小、类型、时间等。下面介绍如何通过文件大小来搜索文件。
按大小查找文件的基本语法
find 命令结合 -size 选项可以实现按大小查找。基本格式如下:
find [路径] -size [大小][单位]
其中:
- 路径:要搜索的目录,如
/home、.(当前目录)或/(根目录) - -size:指定按文件大小搜索
- 大小:数值,可以是正数、负数或精确值
- 单位:可选单位后缀,决定大小的计量方式
常用大小单位说明
单位不区分大小写,常用后缀有:
- c:字节(bytes)
- k:千字节(KB)
- M:兆字节(MB)
- G:吉字节(GB)
例如:+100M 表示大于100MB的文件,-500k 表示小于500KB的文件,1G 表示正好1GB的文件(这种情况较少见)。
实际使用示例
以下是一些常见场景的命令示例:
- 查找当前目录下大于100MB的所有文件:
find . -size +100M - 查找
/home目录中小于50KB的普通文件:
find /home -type f -size -50k - 查找根目录下大于1GB的文件(注意权限问题,可能需要sudo):
sudo find / -size +1G 2>/dev/null
(2>/dev/null用于屏蔽权限不足的错误提示) - 查找等于5MB的文件:
find . -size 5M - 结合文件类型查找,比如只找大于10MB的压缩包:
find . -type f -name “*.zip” -size +10M
提高搜索效率的小技巧
搜索大范围目录时,结果可能很多,可以结合其他命令处理:
- 按大小排序显示:
find . -size +100M -exec ls -lh {} \; | awk ‘{print $5, $9}’ - 统计查找到的文件数量:
find . -size +100M | wc -l - 只显示文件名和大小:
find . -size +50M -exec du -h {} \;
基本上就这些。掌握 find -size 的用法,能快速定位占用空间大的文件,对系统清理和磁盘管理非常有用。关键是记住单位符号和正负号的含义:+ 表示“大于”,- 表示“小于”。

路由网













