美文网首页
文件查找locate和find 命令

文件查找locate和find 命令

作者: 会玩linux不 | 来源:发表于2017-07-30 15:26 被阅读0次

    一、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按文件的大小来和属主、属组等条件查找:

    工作特点:
    • 查找速度略慢
    • 精确查找
    • 实时查找
    • 可能只搜索用户具备读取和执行权限的目录

    相关文章

      网友评论

          本文标题:文件查找locate和find 命令

          本文链接:https://www.haomeiwen.com/subject/wnmclxtx.html