一、locate命令

文件查找命令,不同于find在整块磁盘中搜索,locate命令是在数据库文件中查找,数据库文件系统每天通过定时任务更新,想及时手动更新updatedb命令。更新的是/var/lib/mlocate/mlocate.db,所使用的配置文件是/etc/updatedb.conf,可以在配置文件中定义排除掉,该命令在后台cron计划任务中定期执行。

find默认全部匹配,locate默认部分匹配

下面是个例子,新创建一个文件后用locate查不到,我们发现mlocate.db是凌晨更新的,于是我们updatedb手动更新一下,再次查询就能查到了

【Shell脚本】find、locate、whereis、which汇总_shell


二、whereis命令

查找某个命令的二进制程序文件、帮助文档、源代码文件

-b:只返回二进制文件

-m:只返回帮助文档

-s:只返回源代码文件

【Shell脚本】find、locate、whereis、which汇总_shell_02


三、which命令

查看可执行文件的位置,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果

【Shell脚本】find、locate、whereis、which汇总_shell_03

四、总结

  • which 查看可执行文件的位置。常用于查找程序的绝对路径。

  • whereis 查看可执行文件的位置、帮助文档。不常用。

  • locate 配合数据库查看文件位置。速度快。

  • find 实际搜寻硬盘查询文件名称。功能强大,速度慢。