一、locate 命令
基本用法:
locate是一种基于数据库的模糊、非实时文件查找命令,它不是基于磁盘的,所以需要用updatedb命令进行手动更新避免有些新输入的信息查不到。
updatedb直接在命令行里输入就可以实现数据的更新,但是注意一般在企业中系统繁忙的时候慎用,因为更新库会带来大量的IO。
[root@centos6 ~]# updatedb
[root@centos6 ~]#
语法:
locate [OPTION]... [PATTERN]...
经常用到的选项
-b, --basename 匹配唯一的路径名称的基本文件名
-c, --count 只显示找到条目的号码
-d, --database DBPATH 用 DBPATH 替代默认的数据库(/var/lib/mlocate/mlocate.db)
-e, --existing 只显示当前存在的文件条目
-L, --follow 当文件存在时跟随蔓延的符号链接 (默认)
-i --ignore-case 匹配模式时忽略大小写区别
例子:
1、-n 选项可以只列举前n个的匹配项目,例如我要查找目录下的前3个issue文件。
2、locate 的命令在大范围内对wang用户进行模糊搜索。
工作特点:
• 查找 速度 快
• 模糊 查找
• 非实时查找
• 搜索的是文件的全路径,不仅仅是文件名
• 可能只搜索用户具备读取和执行权限的目录
• 支持正则表达式
二、find 命令
基本用法:
实时查找工具,通过遍历指定路径完成文件查找。它是基于磁盘搜索,搜索速度慢,默认是递归的。
语法:
find [OPTION]... [ 查找路径] [ 查找条件] [ 处理动作]
查找路径:指定具体目标路径;默认为当前目录
查找条件:指定的查找标准,可以文件名、大小、类型、
权限等标准进行;默认为找出指定路径下的所有文件
处理动作:对符合条件的文件做操作,默认输出至屏幕
例子:
1、按层级搜索
-maxdepth level 最大搜索目录深度, 指定 目录为第1级
现在我要查找在/etc/yum 路径下文件里面的第二和第三层
2、 根据文件名和inode 查找:
-name " 文件名称" :支持使用glob
*, ?, [], [^]
-iname " 文件名称" :不区分字母大小写
-inum n 按inode 号查找
-samefile name 相同inode 号的文件
-links n 链接数为n 的文件
2.1、按文件名找出.basrc的文件
2.2、按节点查找根下的节点数为2的文件
2.3、支持正则表达式,查找在 /etc/httpd/路径下任意以.cof结尾的文件
2.4、 组合条件查找:
与:-a
或:-o
非:-not, !
示例:
!A -a !B = !(A -o B)
!A -o !B = !(A -a B)
在/home下找wang 和 mage 的文件
2.5根据文件类型查找:
-type TYPE:
• f: 普通文件
• d: 目录文件
• l: 符号链接文件
• s :套接字文件
• b: 块设备文件
• c: 字符设备文件
• p: 管道文件
2.6按文件的大小来和属主、属组等条件查找:
工作特点:
• 查找速度略慢
• 精确查找
• 实时查找
• 可能只搜索用户具备读取和执行权限的目录