终端中’locate’命令。 为什么这么快?

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

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

这种数据库定期更新; 你可能已经看到它有时安装一个新的包: updating mlocate... 您可以通过在终端中执行来找到有关其工作原理的更多信息:

 man locate man updatedb 

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

 /var/lib/mlocate/mlocate.db 

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

从手册页:

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