• linux中使用locate搜索文件方法记录


    在linux中,有时用apt或者yum等软件包管理工具直接安装软件的时候,不知道软件到底安装到哪里去了,配置文件放哪里?这个时候就可以使用搜索命令locate来找到这些文件。海词上locate翻译为找出的意思,非常形象了。

    1、命令格式

    locate -bic 关键词(可以是正则表达式)

    各参数表示含义如下:

    • -b:basename,只搜索文件名包含关键词的的文件
    • -c:count,统计搜索到的总数
    • -i:ignore case,忽略大小写
    • 关键词:就是搜索的关键词,使用正则表达式可以指定目录进行搜索,非常有用。

    这边几个参数是笔者平时比较常用的,其它参数的使用可以通过man locate查看。另外正则表达式的使用会比较多,笔者常用来定位到某个目录下进行查找。

    2、命令测试

    使用locate命令之前,有一个要先处理下。查看man手册可以发现locate这个命令实际上是在一个数据文件内搜索的,在ubuntu 12.04下这个文件是/var/lib/mlocate/mlocate.db,先更新下这个数据文件,使用updatedb命令就OK了:

    $ sudo updatedb

    如果不更新,会出现明明有相关文件却找不到的问题,切记。

    寻找文件路径中包含apache的文件

    $ locate apache
    
    .....省略若干结果......
    /etc/apache2
    /etc/apache2/apache2.conf
    /etc/apache2/conf.d
    /etc/apache2/envvars
    /etc/apache2/httpd.conf
    /etc/apache2/magic
    .....省略若干结果......

    从上面可以看到,只要文件路径中包含有字符”apache”的文件就会列出来,如果只需要列出文件名包含”apache”字符的文件,使用-b参数就可以了。

    $ locate -b apache
    
    .....省略若干结果......
    /etc/apache2
    /etc/apache2/apache2.conf
    /etc/apparmor.d/abstractions/apache2-common
    /etc/bash_completion.d/apache2.2-common
    /etc/bash_completion.d/apache2ctl
    .....省略若干结果......

    搜索时忽略大小写

    $ locate -i APACHE

    统计搜索到的文件总数

    $ locate -c apache

    搜索指定目录中包含关键词的文件

    $ locate -r ^/etc/*apache

    上例运用到了正则表达式,是用来搜索/etc目录下包含apache的文件。通常情况下,如果不定位目录的话,搜索结果会非常多,定位目录能够更加精确的找到相应的文件。

    总结

    在linux中,也可以使用find来搜索文件,和locate不同的是find会实际扫描磁盘,所以效率上要比locate低些。不过find命令的搜索功能要比locate强大,如果locate搞不定,就用find吧。

  • 相关阅读:
    SNMP简介
    命令模式
    牛顿法
    仿射函数
    schedule
    命令模式
    牛顿法
    schedule
    仿射函数
    适配器模式
  • 原文地址:https://www.cnblogs.com/sthu/p/10130579.html
Copyright © 2020-2023  润新知