whereis、which、find和locate是Linux中的常见查询搜索命令,其中which和where是命令搜索命令,而locate和find是文件查询命令。
1、locate
locate通过文件数据库对文件进行查询,查询速度非常快但功能有限。
另外,locate所依赖的数据库一般是一天更新一次,所以刚刚删除或新建的数据并不能正确、及时的显示在命令结果中。为了解决这个问题,我们可以通过updatedb立刻更新数据库,之后再次查询时刚刚新建的文件也就能显示出来了。
例如,我们在/tmp/文件夹下新建一个test1文件,然后用locate进行查询:
哈哈打脸了,结果并没有查到,这是为什么呢?
其实updatedb命令是由/etc/updatedb.conf文件进行配置的,我们打开这个文件查看下会发现:
倒数第二行中写明update数据库时不会对/tmp中的文件进行更新,所以locate自然也就找不到/tmp/test1文件了。
我们在/home/文件下试一下:
这样就可以了。
2、find
find是通过遍历所有文件进行查询,速度较慢但功能更加强大全面。
3、whereis
4、which