Linux下4个查找命令which、whereis、locate、find

1.which

作用:从环境变量PATH中,定位、返回与指定名字相匹配的可执行文件所在的路径

原理:执行which命令时,which会在当前环境变量PATH中依次寻找能够匹配所找命令名字的可执行文件

适用场合:一般用于查找命令、可执行文件所在的路径

2.whereis

作用:定位、返回与指定名字匹配的二进制文件、源文件和帮助手册文件

原理:whereis命令首先会去掉filename中的前缀空格和以.开头的任何字符,然后再在数据库(var/lib/slocate/slocate.db)中查找与上述处理后的filename相匹配的二进 制文件、源文件和帮助手册文件,使用之前可以使用updatedb命令手动更新数据库

适用场合:二进制文件、源文件和帮助手册文件路径的查找。

3.locate

作用:从数据库建立的索引中找,不同的是该命令查找所有部分匹配的文件,使用之前可以使用updatedb命令手动更新数据库

原理:默认情况下(当filename中不包含通配符*),locate会给出所有与*filename*相匹配的文件的路径。

适用场合:没有文件类型性质的模糊查找(你只记得某个文件的部分名称)

4.find

作用:从当前目录递归的搜索文件

原理:遍历当前工作目录及其子目录,find命令是在硬盘上遍历查找,非常耗费硬盘资源,查找效率较低

适用场合:能用which、whereis和locate的时候尽量不要用find

4个命令比较如下表:

原文地址:https://www.cnblogs.com/chinano1/p/9414572.html