一.常用查找工具介绍
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