美文网首页Linux教程
locate:用于查找符合条件的文件或目录

locate:用于查找符合条件的文件或目录

作者: 7ed8e3680ebe | 来源:发表于2019-12-13 20:00 被阅读0次

    Linux教程:http://www.fdlly.com/m/linux

    本文介绍linux的locate命令功能说明、语法、选项与参数、使用详解,并演示如何使用locate命令在linux上查找文件或目录

    locate:用于查找符合条件的文件或目录

    find命令虽然展现了强大是搜索能力,但对于大规模搜索而言,速度慢了些,下面介绍一下更快速定位文件的命令locate

    locate命令用于用于查找符合条件的文件,它会去保存文件与目录名称的数据库内,查找合乎范本样例条件的文件或目录

    这个数据库位于(/var/lib/mlocate/mlocate.db)文件,这个数据库每天由cron程序来建立。当创建好这个数据库后,就可以方便地搜索所需文件,他比find命令的搜索速度要快。

    初次使用会报错,因为数据库文件此时尚未建立可以使用命令updatedb命令立刻生成该数据库文件的最新版本。运行这个命令需要root权限

    在用 whereis 和 locate 查找文件时,有时会找到已被删除的数据,或者刚刚建立文件却无法查找到,原因就是因为数据库文件没有被更新

    安装

    如果Linux没有这个命令请使用yum工具安装mlocate

    yum install mlocate
    

    语法

    功能说明:用于查找符合条件的文件或目录
    语法:

    locate [选项] [名称]
    

    选项与参数:
    -A, --all 只显示匹配所有模式的条目
    -b, --basename 只匹配路径名的基本名称
    -c, --count 只显示找到的条目的数目
    -d, --database DBPATH 使用 DBPATH,而非默认数据(即:/var/lib/mlocate/mlocate.db)
    -e, --existing 只显示当前存在的文件条目
    -L, --follow 当文件存在时跟随蔓延的符号链接(默认)
    -h, --help 显示帮助信息
    -i, --ignore-case 匹配模式时忽略大小写区别
    -l, --limit, -n LIMIT 限制为 LIMIT项目的输出(或 计数)
    -m, --mmap 被忽略,用于向后兼容
    -P, --nofollow, -H 当检查文件时不跟随蔓延的符号链接
    -0, --null 输出时以 NUL 分隔项目
    -S, --statistics 不搜索项目,显示有关每个已用数据库的统计信息
    -q, --quiet 不报告关于读取数据库的错误消息
    -r,--regexp REGEXP 搜索基本正则表达式 REGEXP 而不是模式
    --regex 模式是扩展正则表达式
    -s, --stdio 被忽略,用于向后兼容
    -V, --version 显示版本信息
    -w, --wholename 匹配完整路径名(默认)

    实例

    立即更新数据

    [root@localhost /]# updatedb
    

    搜索目录下所有以 sh 开头的文件

    [root@localhost /]# locate /etc/sh
    /etc/shadow
    /etc/shadow-
    /etc/shells
    
    

    查找包含text字符串的相关文件

    [root@localhost /]# locate text
    

    显示找到几个包含text字符串的相关文件

    [root@localhost /]# locate -c text
    351
    

    限定显示数量

    如果显示的内容过多,可以使用 -n 选项来限定显示数量

    [root@localhost /]# locate -n 5 text
    /boot/grub2/i386-pc/gettext.mod
    /boot/grub2/i386-pc/mda_text.mod
    /boot/grub2/i386-pc/vga_text.mod
    /etc/selinux/targeted/contexts
    /etc/selinux/targeted/active/file_contexts
    

    查找时不区分大小写

    [root@localhost /]# locate -i text
    

    使用正则表达式

    当需要查找符合特定规则的信息时,可以使用 -r 选项匹配相应的正则表达式。

    # 查找以 /var/lib/rpm 开头的文件
    [root@localhost /]# locate -r ^/var/lib/rpm
    
    # 查找以 zip 结尾的文件
    [root@localhost /]# locate -r zip$
    

    查找最近变动过的文件

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

    # 新建文件
    [root@localhost ~]# touch new_file
    [root@localhost ~]# locate ~/new_file
    [root@localhost ~]# updatedb
    [root@localhost ~]# locate ~/new_file
    /root/new_file
    [root@localhost ~]# 
    # 删除文件
    [root@localhost ~]# rm -rf file.txt 
    [root@localhost ~]# locate ~/file.txt
    /root/file.txt
    [root@localhost ~]# updatedb
    [root@localhost ~]# locate ~/file.txt
    [root@localhost ~]# 
    

    相关文章

      网友评论

        本文标题:locate:用于查找符合条件的文件或目录

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