知乎 linux命令which,whereis,locate,find的区别
which:常用于查找可直接执行的命令。只能查找可执行文件,该命令基本只在$PATH路径中搜索,查找范围最小,查找速度快。默认只返回第一个匹配的文件路径,通过选项 -a 可以返回所有匹配结果。
whereis:不只可以查找命令,其他文件类型都可以(man中说只能查命令、源文件和man文件,实际测试可以查大多数文件)。在$PATH路径基础上增加了一些系统目录的查找,查找范围比which稍大,查找速度快。可以通过 -b 选项,限定只搜索二进制文件。
我的理解:
which:
只找$PATH
whereis:
不只找$PATH,還找其他系統目錄中有無檔案
所以即便是這樣微小的差異,就有可能使得你
which Python3
whereis Python3
有所區別