文件查找
在文件系统上查找符合条件的文件
文件查找工具:
locate:非实时查找,依赖于数据库,查找速度快
find:实时查找,查找速度慢
locate工具:
查询系统上预建的文件索引数据库:/var/lib/mlocate/mlocate.db
依赖于事先构建的索引
索引的构建是在系统较为空闲时自动进行(周期性任务)
索引构建过程需要遍历整个根文件系统,极消耗资源
管理员可以通过命令手动更新数据库:updatedb工作特点:
查找速度快
模糊查找
非实时查找
搜索的是文件的全路径,不仅仅是文件名
可能只搜索用户具备读取和执行权限的目录
命令格式:locate KEYWORD
常用选项:
-i 不区分大小写的搜索
-n N 只列举前N个匹配项目
-r 使用基本正则表达式
示例
搜索名称或路径中带有“conf”的文件
locate conf
使用Regex来搜索文件
locate -r ‘\.conf$’
locate –r ‘yum*\.repo’
locate -n 10 -r "yum.*.repo" 只显示前10个搜索结果
locate –r ’\.\(jpg\|png\)$’
locate -r 'f.*.jpg'
find工具:
实时查找工具,通过遍历指定路径完成文件查找
工作特点:
查找速度略慢
精确查找
实时查找
可能只搜索用户具备读取和执行权限的目录
语法格式:find [OPTION]... [查找路径] [查找条件] [处理动作]
查找路径:指定具体目标路径;默认为当前目录
查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行,默认为找出指定路径下的所有文件
处理动作:对符合条件的文件做操作,默认输出至屏幕
查找条件:
指搜索层级
-maxdepth level 最大搜索目录深度,指定目录下的文件为第1级
-mindepth level 最小搜索目录深度
如: find -maxdepth 1 –name “*.conf” 只在第1层目录中搜索
[root@centos7: ~]#find /etc -maxdepth 1 -name "*.conf"
/etc/resolv.conf
/etc/libaudit.conf
/etc/asound.conf
/etc/e2fsck.conf
/etc/mke2fs.conf
find –mindepth 2 –name “*.conf” 在至少2层目录的搜索
[root@centos7: ~]#find /etc -mindepth 2 -name "*.conf"
/etc/fonts/conf.d/57-dejavu-serif.conf
/etc/fonts/conf.d/65-1-vlgothic-gothic.conf
/etc/fonts/conf.d/31-cantarell.conf
/etc/fonts/conf.d/65-0-lohit-nepali.conf
/etc/fonts/conf.d/59-liberation-mono.conf
/etc/fonts/conf.d/65-0-lohit-bengali.conf
-depth 先处理目录内的文件,再处理指定目录