Linux中搜索命令--locate、find
1. locate
如果没有安装,要先安装:
yum -y install mlocate
搜索命令:
locate 文件名
在后台数据库中按文件名搜索,搜索速度更快
/var/lib/mlocate
#locate命令所搜索的后台数据库
updatedb
更新数据库
locate优点是 搜索速度快 ,缺点是只能按文件名搜索;
更新数据库配置文件: /etc/updatedb.conf配置文件
2.find命令
命令格式:
find [搜索范围] [搜索条件]
例如:find / -name "书"
find只能完全匹配,例如:
如果我们需要进行模糊查询,我们要使用通配符;
* 匹配任意内容
?匹配任意一个字符
[]匹配任意一个中括号的字符
例如:
find /root -iname 文件名
不区分大小写,linux是严格区分大小写的,假如用iname 查询时不区分大小写;
实战:搜索/root目录下以字母a(不区分大小写)开头的所有文件:
find /root -user root
根据所有者搜索
实战:搜索/root目录下属于root用户的所有文件:
find /root -nouser
查找没有所有者的文件
find /var/log/ -mtime +10
查找10天前修改的文件
-10 10天内修改的文件
10 10天当前修改的文件
+10 10天前修改的文件
atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容
实战:查找 /var/log/ 中10天内修改的文件:
find /root -size 2k
查找文件大小是1到2KB的文件(进一法)
-2k 小于2KB的文件
2k 等于2KB的文件
+2k 大于2KB的文件
find /root -inum 262422
查找i节点是262422的文件
find /etc -size +20k -a -size -50k
查找/etc/目录下,大于20KB并且小于50KB的文件
-a and 逻辑与 ,两个条件都满足
-o or 逻辑或,两个条件满足一个即可