一.常用查找工具介绍
1clocate
基于数据库的查找。基于效率而言locate要快,但不够精确
2.find
基于文件目录下的实时查找。基于基于精确度而言,find会跟好一点,但就是稍显慢了。
二.find命令的使用 -name 根据文件名(区分大小写)
-iname 忽略大小
-lname 链接文件
注:根文件名是如果有空格或*要加“”
支持正则的全路径查找 -user 根据文件属主查找
-group 根据文件属组查找
-nouser -nogroup
查找没有属主或属组的文件 多个命令时默认是相与的关系
find /etc -user root -name “*passwd”
=find /etc -user root -a -name “*passwd”
-o :表示“或”
-not:表示“非”
默认优先顺序: not—>a--->o -perm -perm mode 精确匹配
-perm /mode 只要有一位匹配即可
perm -mode 三类权限中每类至少有一位匹配
位为0表示忽略
-uid 根据uid查找
-gid 根据gid查找
-type 根据文件类型 f 文件
d 目录
l 链接
b 块设备
c 字符设备
p 管道
s socket 文件
-size 根据文件大小 b:512
c:byte
k:bb
M:mb
G:gb
-:小于
+:大于
atime 根据时间天 访问时间
mtime 修改时间
ctime 改动时间 +n:表示n天以前的
-n:表示n天以内的
amin 根据时间分的
mmin
cmin +n:n分前的
-n:n分内的
-newer 更接近现在的
三.find查找于exec或ok的配合使用 exec:接find的输出结果分条输出时不与用户交互
ok:接find的所有结果后分条在输出,每输出一条就会询问用户是否输出。
例如:find –name “*.sh” -exec ls –l {} \;
注:{}:表示占位符。
每条命令都要以\;结束。
3..为防止find输出地数据太多在传向exec或ok时溢出,我们使用xargs
例如:find –name “*.sh” |xargs ls –l