linux提供了5种查找文件的命令:find、locate、whereis、which和type。其中,find最强大,之前介绍过了,请参考文章:linux shell之find命令用法,接下来介绍其余4个命令。
一、locate
locate命令其实是find -name的另一种写法,但要比后者快得多,因为其不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中存有本地所有文件的信息。Linux系统自动创建这个数据库,并且默认通过cron(/etc/crontab)调用updatedb程序来每天自动更新一次,所以使用locate命令查不到最新变动过的文件。
为了避免这种情况,可以在使用locate之前,先调用updatedb命令手动更新下数据库。locate命令的可选项如下:
locate命令使用举例:
二、whereis
whereis命令只能用于程序名的搜索,而且只搜索二进制文件、man说明文件和源代码文件,其可选参数如下:
whereis命令使用举例:
三、which
which命令的作用是在PATH变量指定的路径中搜索某个系统命令的为止,并且返回第一个搜索结果,即使用which命令就可以查看某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which命令用法:
四、type
type命令其实不是查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果是外部命令,那么使用-p参数会显示该命令的路径,相当于which命令。
type命令使用举例: