Shell之locate与find性能命令比较

1、命令介绍

①locate

Linux locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。

一般情况我们只需要输入locate your_file_name即可查找指定文件。

②find

find命令是linux系统查找文件的命令,最大的作用是帮助用户在使用linux 系统时候能快速的找出自己所需要的文件

2、实战演练

之前在过《Shell脚本学习指南》那本书的时候,初次接触到locate这个命令,然后发现它定位文件路径的速度非常快,于是就萌生了它和find这个同样具有查找文件路径功能的命令之间性能比较的想法。话不多说,直接放图:以查找passwd文件为例

①find性能

②locate性能

③性能比较

locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。

locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:locate -u

④安全性

locate查找时,连一些系统关键性位置的文件都可以找出,然而find会受到权限方面的限制,所以同样的过滤条件,locate查找出的文件数量要明显多于find查找出的数量,所以在安全性上locate较find要略逊一筹。

locate查找出的文件数量

find查找出的文件数量

⑤适用场景

如果对安全性要求不高,且对速度上要求高,仅仅需要定位文件的位置而不是多少天修改、访问等其他文件操作的时候,那么用locate吧。

3、参考文献

Linux locate命令

linux之find命令详解

推荐阅读更多精彩内容