1.1 find 命令介绍
find 是 Linux 中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限、大小、时间、inode 号等来搜索文件。
但是 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,find命令就会消耗较大的系统资源,导致服务器压力过大。
所以,在使用 find 命令搜索时,不要指定过大的搜索范围。
1.1.1 命令格式
find 搜索路径 [参数] 搜索内容
1.1.2 命令参数
参数 | 作用 |
---|---|
-name | 按名字查找 |
-type | 按文件类型查找 |
-size [+-] | 按文件大小查找 |
-mtime [+-] | 按修改时间查找 |
-exec | 对查找的结果进行处理 |
-o | 并集查找 |
-a | 组合查找 |
! | 取反 |
1.2 find 使用
1.2.1 -name 按照文件名搜索
1)使用语法:
# find 查找路径 -name 查找内容
2)使用实例:
# 全名称查找
find /root/ -name "oldboy.txt"
# 模糊查找
find /root/ -name "oldboy*"
1.2.2 -type 按文件类型查找
1)文件类型:
字符 | 文件类型 |
---|---|
f | 普通文件 |
d | 目录文件 |
l | 软连接 |
c | 字符设备 |
b | 块文件 |
c | socket文件 |
1)使用语法:
# find 查找路径 -type 文件类型字符
2)使用实例:
# 查找 /root/ 目录下的目录文件
find /root/ -type d
# 查找 /root/ 目录下的普通文件
find /root/ -type f
1.2.3 -size [+-] 按文件大小查找
1)文件大小单位
单位 | 含义 |
---|---|
b | 按照 512 Byte 查找(默认单位) |
c | 按照字节查找 |
k | 按照KB单位搜索 |
M | 按照MB单位搜索 |
G | 按照GB单位搜索 |
2)使用语法
# find 查找路径 -size 文件大小[大小单位]
3)使用实例:
# 按照字节查找
find /root/ -size +1000c
find /root/ -size -1000c
# 按照KB单位查找
find /root/ -size +1k
find /root/ -size -1k
# 按照MB单位搜索
find /boot/ -size +1M
find /root/ -size -1M
# 按照GB单位搜索
find / -size +1G
find /root/ -size -1G
1.2.4 -mtime [+-] 按文件修改时间查找
1)使用语法:
# find 查找路径 -mtime [+-]天数
2)使用实例:
# 查找7天前修改过的文件
find /root/ -mtime +7
# 查找7天内修改过的文件
find /root/ -mtime -7
# 查找第7天修改过的文件
find /root/ -mtime 7
1.2.5 -exec 对查找的结果进行处理
1)使用语法:
注意这里的"{}"和";"是标准格式,只要执行"-exec"选项,这两个符号必须完整输入
# find 查找路径 [选项] 查找内容 -exec 命令2{}\;
2)使用实例:
# 创建一个空白且占500MB的文件
dd if=/dev/zero of=test.log bs=1M count=500
# 删除 /root/ 目录下大小为500MB的文件
find /root/ -size 500M -exec rm -f {}\;
1.2.6 -o 并集查找
1)使用语法:
# find 查找路径 [选项] 查找内容 -o [选项] 查找内容
2)使用实例:
# 查找文件大小大于100MB的文件,或者是目录文件
find /root/ -size +100M -o -type d
1.2.7 -a 组合查找
1)使用语法:
# find 查找路径 [选项] 查找内容 -a [选项] 查找内容
2)使用实例:
# 查找文件大小大于100MB的文件,并且是普通文件
find /root/ -size +100M -a -type f
1.2.8 ! 对查找的内容取反
1)使用语法:
# find 查找路径 ! [选项] 查找内容
2)使用实例:
# 查找不小于100MB的文件
find /root/ ! -size -100M