Linux whereis、find和locate命令区别以及应用场景
查找某个文件是我们在使用使用linux中非常常用的一个命令。
linux中有多个查找文件的指令:whereis、find、locate都有类似查找的功能,下面将讲解这些指令之间的区别。
-
whereis
功能:定位文件目录
whereis命令不是通过查找磁盘上的所有文件来实现定位的,你可以随便指定一个可执行文件,估计whereis会找不到,这是因为whereis是根据环境变量PATH来查找文件的,而PATH通常设置成存放命令的那些路径,如 /bin、/usr/bin等,因此whereis的用途仅限于定位shell命令所在的位置。
-
find
功能:查找文件
find命令可以用来从指定的目录开始查找文件,它的速度虽比不上whereis命令,但没有任何限制,而且功能要比whereis命令强。
-
locate
功能:查找文件或目录
除find命令外,locate也是在系统中查找文件的常用方法。
用locate命令查找的文件和find一样没有任何限制,但执行速度却比find要快不少,其主要原因在于,locate不是从磁盘中实时查找文件,而是到由updatedb命令产生的信息库中查找相应的文件和目录,这样一来速度当然快了。
在Linux中,也有相当优秀的搜索系统。通常,find不常用,因为速度慢,耗费硬盘空间。通常我们先使用whereis或者locate来检查,如果 找不到,才用find搜索。为什么?因为whereis与locate是使用数据库来搜索数据,所以相当快,而且并没有实际搜索硬盘,比较省时。