find命令
1.简介
find命令用来在文件系统上查找符合条件的文件。find命令有很好的灵活性,且功能强大,可以指定丰富的搜索条件(如文件权限、属主、属组、文件类型、日期和大小等)来定位系统中的文件和目录,同时还支持对搜索的结果进行命令操作。find命令是运维人员与安全从业人员必须掌握的文件查找命令。
2.语法格式
find 【路径】 【查询的条件】 【处理的动作】
3.应用场景
网络安全(日志,修改、指定),运维工程,开发工作中。
部分参数
1.-name:按照文件的名称查找。
2.-type:按照文件的基本属性查找。
3.-size:按照文件的大小查找。
4.-mtime:文件数据内容最后一次修改时间在n*24小时之前。
"-size"参数介绍
1.作用
find命令的-size参数用于查找符合指定文件大小的文件。
2.语法格式
find 【路径】 -size 【±】n【c/w/b/k/M/G]
- 【路径】:指定开始搜索的目录,默认为当前目录。
- 【±】可选符号,表示大小的范围。
- ‘'+''表示大于指定大小;''-''表示小于指定大小。
- n:一个数字,表示大小的数值。
- 【c/w/b/k/M/G]:单位,这是关键部分,必须指定。
3.单位详解
|
单位字符 |
含义 |
说明 |
|---|---|---|
|
c |
字节 |
文件大小的基本单位。 |
|
w |
字(2字节) |
较少使用。 |
|
b |
块(512字节) |
这是默认单位。如果省略所有单位字符,则 -size n 等价于 -size n b 。 |
|
k |
千字节(KiB, 1024字节) |
最常用的单位之一。 |
|
M |
兆字节(MiB, 1024 KiB) |
最常用的单位之一。 |
|
G |
吉字节(GiB, 1024 MiB) |
用于搜索大文件。 |
4实用示例
1.查找大小为 0 的文件(空文件)
find . -size 0
2.查找小于 100 KB 的文件
find . -size -100k
3.查找大于 1 GB 的文件
find /home -size +1G
4.查找大小在 1MB 到 1GB 之间的文件
find 命令本身不支持直接指定范围(如 1M - 1G),但可以通过组合条件来实现(使用 -a 表示 “and”,通常可以省略)。
find . -size +1M -size -1G
这个命令的意思是:查找大于 1MB 并且 小于 1GB 的文件。
5.查找大于 10MB 的 .log 文件并将其删除(非常谨慎的操作!)
find /var/log -name "*.log" -size +10M -delete
警告:-delete 动作非常危险,请务必先在命令中去掉 -delete 运行一次,确认找到的文件确实是您想删除的。
注意事项与常见误区
- 默认单位是 b (块):这是最容易出错的地方! -size 50 表示的是 50个块(50 * 512字节 = 25600字节),而不是50字节。强烈建议始终显式地指定单位(如 k , M )。
- “精确”匹配是范围匹配:再次强调,无符号的 -size nU 匹配的是区间 [n, n+1) U 。例如 -size 2k 匹配的是 [2048, 3072) 字节的文件。
- 符号字符和单位字符之间不能有空格:
- 正确: -size +10M
- 错误: -size + 10 M 或 -size +10 M
4.与其他条件组合: find 的强大之处在于可以将 -size 与 -name , -mtime , -user , -exec 等参数组合使用,实现复杂的查找需求。
总结
| 命令示例 | 含义 |
|---|---|
find . -size 10k | 大小在 10240 到 11263 字节之间的文件(因为 10k = 10240字节,舍入到 10k 块)。更简单的理解:约等于 10KB。 |
find . -size -10k | 大小小于 10240 字节的文件。 |
find . -size +10k | 大小大于或等于 11264 字节的文件。 |
find . -size +1M -size -1G | 大小大于 1MB 且小于 1GB的文件。 |
1609

被折叠的 条评论
为什么被折叠?



