Linux 中locate命令的安装和使用

locate(locate) 命令用来查找文件或目录。 locate命令要比find -name快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db 。这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新

安装 locate

根据发行版本的情况以及系统的配置方式,可以在 Linux 系统上预安装定位包,也可以不预先安装。

要检查系统上是否 locate 安装了该实用程序,请打开终端,键入 locate 并按 Enter 。如果安装了包,系统将显示 locate: no pattern to search for specified ,否则你会看到类似的东西 locate command not found

如果 locate 未安装,您可以使用发行版的软件包管理器轻松安装它。

在 Ubuntu 和 Debian 上安装 locate

sudo apt update
sudo apt install mlocate

在 CentOS 和 Fedora 上安装 locate

sudo yum install mlocate

locate 如何工作

locate 命令通过 updatedb 命令生成的数据库文件搜索给定模式。找到的结果显示在屏幕上,每行一个。

在 mlocate 软件包安装期间,会创建一个每 24 小时运行一次 updatedb 命令的 cron 作业。这可确保定期更新数据库。有关 cron 作业的更多信息,请检查该 /etc/cron.daily/mlocate 文件。

可以通过以 root 身份或使用 sudo 权限的用户运行 updatedb 命令来手动更新数据库:

sudo updatedb

更新过程将需要一些时间,具体取决于文件和目录的数量以及系统的速度。

数据库更新后才创建的文件不会显示在定位结果中。

与 find 搜索文件系统的更强大的命令相比, locate 操作速度更快但缺少许多功能,并且只能通过文件名进行搜索。

如何使用 locate 命令

该 locate 命令的语法如下:

locate [OPTION] PATTERN...

在最基本的形式中,当没有任何选项时, locate 命令将打印与搜索模式匹配且用户具有读取权限的所有文件和目录的绝对路径。

例如,要搜索名为的文件, .bashrc 您可以键入:

locate .bashrc

输出将包含名称中包含字符串的所有文件 .bashrc 的名称:

/etc/bash.bashrc
/etc/skel/.bashrc
/home/linuxidc/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

该 /root/.bashrc 文件将不会显示,因为我们使用作为普通用户运行该命令的,该用户对该 /root 目录没有访问权限。

如果结果列表很长,为了更好的可读性,您可以将输出传递给 less 命令:

locate .bashrc | less

该 locate 命令还接受包含通配符(如通配符)的模式 * 。当模式不包含通配符是,将要搜索 PATTERN ,这就是为什么在前面的示例中显示了名称中包含搜索模式的所有文件。

通配符是用于表示零个,一个或多个字符的符号。例如,要搜索 .md 系统上的所有文件,您将使用:

locate *.md

要限制搜索结果的数量,请使用 -n 选项,后跟要显示的结果数。例如,以下命令将搜索所有 .py 文件并仅显示 10 个结果:

locate -n 10 *.py

默认情况下, locate 执行区分大小写的搜索。 -i(–ignore-case) 选项告诉 locate 在搜索时忽略大小写。

locate -i readme.md
/home/linuxidc/p1/readme.md
/home/linuxidc/p2/README.md
/home/linuxidc/p3/ReadMe.md

要显示所有匹配条目的计数,请使用 -c(–count) 选项。以下命令将返回其名称中包含 .bashrc 的所有文件的数量:

locate -c .bashrc
6

默认情况下, locate 不检查找到的文件是否仍存在于文件系统上。如果在最新数据库更新后删除文件,如果文件与搜索模式匹配,则它将包含在搜索结果中。

要仅显示 locate 运行时存在的文件的名称,请使用 -e(–existing) 选项。例如,以下内容仅返回现有 .json 文件:

locate -e *.json

如果您需要运行更复杂的搜索,可以使用 -r(–regexp) 选项,该选项允许您使用基本正则表达式而不是模式进行搜索。可以多次指定此选项。 例如,要在系统中搜索所有 .mp4 与 .avi 文件,而忽略你可以运行情况:

locate --regex -i "(\.mp4|\.avi)"

结论

该 locate 命令在文件系统中搜索名称与给定模式匹配的文件和目录。命令语法易于记忆,结果几乎立即显示。

在终端中运行 man locate 可以查看 locate 命令的所有可用选项的更多信息。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/222577.html<

(0)
运维的头像运维
上一篇2025-04-15 13:44
下一篇 2025-04-15 13:45

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注