终端中的“locate”命令。为什么它这么快?

终端中的“locate”命令。为什么它这么快?

在 Linux 终端中使用该命令搜索关键字可以locate在短时间内得到答案。使用的搜索算法是什么?

答案1

系统会创建计算机中所有文件的数据库。因此,当您通过locate命令进行搜索时,它实际上并不会检查整个文件系统,而只会检查数据库,它会执行二进制搜索算法,其速度就像在字典中查找单词一样快。这就是它如此快速(且方便)的原因。

此类数据库会定期更新;您可能在安装新软件包时看到过它有时工作:updating mlocate...。您可以通过在终端中执行以下命令来了解有关其工作原理的更多信息:

man locate

man updatedb

答案2

它使用数据库。默认搜索的数据库位于:

/var/lib/mlocate/mlocate.db

定位的缺点是它不是实时的。

从手册页中:

描述:locate 读取一个或多个由 updatedb(8) 准备的数据库,并将与至少一个 PATTERN 匹配的文件名写入标准输出,每行一个。

相关内容