• Linux命令:locate


    摘要: 转自恋猫大鲤鱼
    https://dablelv.blog.csdn.net/article/details/103022717

    1. 命令简介

      locate 命令用于查看文件。

      如果没有指定--regex, 匹配模式可以包含通配符 (globbing characters)。如果模式不包含通配符,则模式等价于 *PATTERN*.

      作用类似于 find 命令,但是比 find 快,因为 locate 不想 find 那样全磁盘搜索,而是从由 updatedb 命令维护的数据库 (一般为 /var/lib/mlocate/mlocate.db) 中查找。默认情况下,locate 不会检查从数据库中找到的文件是否存在,也无法找到在数据库最近更新之后创建的文件,因为数据库的更新由延迟。为了避免这种情况,可以在使用locate 之前,先使用 updatedb 命令手动更新数据库。

    2. 命令格式

    locate [OPTION] ... PATTERN ...

    3. 参数说明

    -A, --all
        只显示匹配所有模式的条目
    -b, --basename
        只匹配文件的基本名。作用与 --wholename 相反
    -c, --count
      只输出符合匹配模式的文件的数量
    -d, --database DBPATH
      将默认数据库替换为 DBPATH. 该选项可出现多次
    -e, --existing
      只打印当前存在的文件
    -L, --follow
      当检查文件是否存在时 (如果选项 --existing 指定时), 检查符号链接的目标文件(默认,相反选项是 --nofollow)
    -i, --ignore-case
      比较的时候忽略大小写
    -l, --limit, -n LIMIT
      限制成功匹配的文件数为 LIMIT
    -P, --nofollow, -H 当检查文件是否存在时(如果选项 --existing 指定时),不检查符号链接的目标文件。作用与 --follow 相反
    -0, --null
      在输出时使用 ASCII NUL 字符分隔条目,而不是将每个条目写在单独的行上。此选项是为了与 GNU xargs(1)的 --null 选项配合使用而设计的
    -S, --statistics
      不搜索文件,而是显示每个数据库的统计信息
    -q, --quiet
      不报告关于读取和处理数据库时遇到的错误的消息
    -r, --regexp REGEXP
      使用正则表达式 REGEXP 进行搜索。该选项可出现多次
    --regex
      将所有模式解释为扩展的正则表达式
    -V, --version
      输出 locate 的版本和许可信息并退出
    -w, --wholename
      仅将整个路径名与指定的模式匹配(默认)。如果只匹配文件基本名,可使用选项 --basename

    4. 常用示例

      1. 查找文件名为 NAME 的文件(反斜杠:阻止了隐式地将 NAME 转换为 NAME)

    locate -b 'NAME'

      2.查找文件名包含某个字符串的相关文件。

    locate -b
    /usr/sbin/ifconfig
    /usr/share/man/de/man8/ifconfig.8.gz
    /usr/share/man/fr/man8/ifconfig.8.gz
    /usr/share/man/man8/ifconfig.8.gz
    /usr/share/man/man8/ifconfig_selinux.8.gz
    /usr/share/man/pt/man8/ifconfig.8.gz
    /usr/share/selinux/devel/html/ifconfig.html
    /usr/share/zsh/5.0.2/functions/_ifconfig

      3. 查找配置文件 mlocate.db。

    locate mlocate.db
    /usr/share/man/man5/mlocate.db.5.gz
    /var/lib/mlocate/mlocate.db

      4.显示数据库的统计信息。

    locate -S
    Database /var/lib/mlocate/mlocate.db:
        21,626 directories
        230,452 files
        15,475,136 bytes in file names
        5,711,659 bytes used to store database

      5. 搜索基本正则表达式 REGEXP 来代替模式。查找名称以 mlocate 开头,以 db 结尾的文件。

    locate -b -r ^mlocate.*db$
    /var/lib/mlocate/mlocate.db

       6. 查找最近变动的文件。使用 locate 命令查不到最近变动过的文件。为了避免这种情况,可以在使用 locate 之前,先使用 updatedb 命令,手动更新数据库。

    # 无法找到新建的文件
    touch new_file
    locate new_file
    
    # 手动更新数据库后可以查到新建的文件
    updatedb
    locate new_file
    /root/new_file
  • 相关阅读:
    Objective-C-----协议protocol,代码块block,分类category
    iOS-Core Data 详解
    TCP、UDP详解
    springboot+mybatisplus配置多个mapper路径
    django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb的解决方法
    Django笔记——Eclipse+pydev首个django例子helloworld
    eclipse html插件的下载和安装
    sqlserver往字符串里固定位置插入字符
    在文件夹中直接调用命令提示符
    HTML:如何将网页分为上下两个部分
  • 原文地址:https://www.cnblogs.com/jiaklop9/p/14240771.html
Copyright © 2020-2023  润新知