分享

linux学习笔记:locate,find命令总结(一)

 Frank__Library 2016-02-17

u=443717921,425147864&fm=21&gp=0.jpg 

  linux中locate,find命令都是在文件系统中查找符合条件的文件,但是locate是利用数据库来搜寻数据,所以速度相对比较快。

    locate依赖于事先构建好的索引库,每天系统在空闲时间都会通过周期性任务自动完成索引库的更新,手动更新索引库就需要执行命令updatedb,也正是因为依赖于数据库,造成locate查询出来的结果可能会跟执行查询命令时的实际情况有出入,并且其为模糊查找。

    locate命令格式:

         locate [OPTION]... [PATTERN]...

        常用选项:

            -b,--basename:只匹配路径中的基名;

            -c,--count:统计出共有多少个符合条件的文件;

            -r, --regexp REGEXP:查询时用基本的正则表达式;

            -i, --ignore-case:忽略大小写查询;

 

注意:索引构建过程需要遍历整个根文件系统,及其消耗资源。

 

    find是实时查找工具,通过遍历指定起始路径下文件系统层级结构完成文件查找,其查找速度比较慢,但为精确查找。

    find用法:

        格式:find [OPTIONS] [查找起始路径] [查找条件] [处理动作]

                   find [PATH] [option] [action]

            查找起始路径:指定具体搜索目标起始路径,默认为当前目录;

            查找条件:指定的查找标准,可以根据文件名,大小,类型,从属关系,权限等标准进行,默认为找出指定路径下的所有文件;

            处理动作:对符合条件的文件做出操作,如删除,重命名等

 

    以下对查找条件做出略微详细的说明:

            根据文件名查找:

                -name pattern

                -iname pattern:同-name,但是不区分大小写;

                        此处的pattern支持glob风格的通配符,如*,?,[],[^]等;

                -regex pattern:基于正则表达式查找,匹配到的是整个路径,而非文件名;

 

            根据文件从属关系查找:

                -user uname:查找属主为指定用户的文件;

                 -group gname:查找属组为指定组的文件;

                -uid n:查找属主为指定UID的文件;

                -gid n:查找属组为指定GID的文件;

                -nouser:查找没有属主的文件;

                -nogroup:查找没有属组的文件;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多