linux查找命令 find、locate
一、**locate**
性能介绍
非实时查找(数据库查找):locate
查询系统上预建的文件索引数据库
/var/lib/mlocate/mlocate.db
注意:如果这个文件删除了,locate就无法使用了。需手动手动更新数据库(updatedb),或重启系统,locate才能恢复作用。
依赖于事先构建的索引:
- 索引的构建是在系统较为空闲时自动进行(周期性任务),管理员手动更新数据库(updatedb)
- 索引构建过程需要遍历整个根文件系统,极消耗资源
工作特点:
- 查找速度快
- 模糊查找
- 非实时查找
- 搜索的是文件的全路径,不仅仅是文件名
- 可能只搜索用户具备读取和执行权限的目录
locate命令用法:
有用的选项
-i 不区分大小写的搜索
-n N只列举前N个匹配项目
-r 使用正则表达式
搜索名称或路径中带有“conf”的文件
locate conf
使用Regex来搜索以“.conf”结尾的文件
locate -r ‘\.conf$’
二、find
实时查找工具,通过遍历指定路径完成文件查找
工作特点:
- 查找速度略慢
- 精确查找
- 实时查找
- 可能只搜索用户具备读取和执行权限的目录
find用法格式
find [OPTION]… [查找路径] [查找条件] [处理动作]
- 查找路径:指定具体目标路径;默认为当前目录
- 查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件
- 处理动作:对符合条件的文件做操作,默认输出至屏幕
查找条件
1、指搜索层级
-maxdepth level 最大搜索目录深度,指定目录为第1级
-mindepth level 最小搜索目录深度
-depth 先处理目录内的文件,再处理目录
2、根据文件名和inode查找:
-name "文件名称":支持使用glob
*, ?, [], [^]
-iname"文件名称":不区分字母大小写
-inum n 按inode号查找
-samefile name 相同inode号的文件
-links n 链接数为n的文件
-regex“PATTERN”:以PATTERN匹配整个文件路径,而非文件名称
还没有评论,来说两句吧...