安卓系统

在Linux中找到命令

你知道怎么在Linux上安装软件吗?教你如何在Linux系统上安装软件 | Linux安装软件 | Linux教程

你知道怎么在Linux上安装软件吗?教你如何在Linux系统上安装软件 | Linux安装软件 | Linux教程

目录:

Anonim

在Linux上工作时,最常见的操作之一是搜索文件和目录。 在Linux系统上,有几个命令使您可以使用 find locate 搜索最常用的文件。

locate 命令是通过文件和目录的名称搜索文件的最快,最简单的方法。

在本教程中,我们将说明如何使用 locate 命令。

安装 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软件包期间,将创建一个cron作业,该作业每24小时运行一次 updatedb 命令。 这样可以确保数据库得到定期更新。 有关cron作业的更多信息,请检查 /etc/cron.daily/mlocate 文件。

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

sudo updatedb

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

数据库更新后创建的文件将不会显示在查找结果中。

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

如何使用 locate 命令

locate 命令的语法如下:

locate PATTERN…

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

例如,要搜索名为 .bashrc 的文件,请输入:

locate.bashrc

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

/etc/bash.bashrc /etc/skel/.bashrc /home/linuxize/.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 ignore --ignore-case )选项电话 locate 为忽略大小写并运行不区分大小写的搜索。

locate -i readme.md

/home/linuxize/p1/readme.md /home/linuxize/p2/README.md /home/linuxize/p3/ReadMe.md

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

locate -c.bashrc

6

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

要仅显示在 locate 存在的文件名,请使用 -e (-- --existing )选项。 例如,以下代码将仅返回现有的 .json 文件:

locate -e *.json

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

结论

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

有关 locate 命令类型的所有可用选项的更多信息,请在您的终端中使用 man locate

终端定位