which, whereis, locate, find的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了which, whereis, locate, find的区别相关的知识,希望对你有一定的参考价值。


which       查看可执行文件的位置,这些可执行文件都是在PATH环境变量中设置好的,所以which基本上都是查找可执行的文件

 

[[email protected] ~]# which yum
/usr/bin/yum

whereis    查看文件的位置 

[[email protected] ~]# whereis [-bmsu] 文件或者目录名称 
参数说 明: 
-b : 只找二进制文件 
-m: 只找在说明文件manual路径下的文件 
-s : 只找source源文件 
-u : 没有说明文档的文件 

更多的参数可以通过man whereis 来查看, 

locate 文件或者目录名称 

配合数据库查看文件位置,

和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。可以通过updatedb 来强制性更新本地的数据库

find   实际搜寻硬盘查询文件名称 

参数也是很多,我经常用的就是 

find / -name zabbix.conf

更多的参数可以参考下面 或者通过 man find

时间查找参数: 
-atime n :将n*24小时内存取过的的文件列出来 
-ctime n :将n*24小时内改变、新增的文件或者目录列出来 
-mtime n :将n*24小时内修改过的文件或者目录列出来 
-newer file :把比file还要新的文件列出来 
名称查找参数: 
-gid n       :寻找群组ID为n的文件 
-group name  :寻找群组名称为name的文件 
-uid n       :寻找拥有者ID为n的文件 
-user name   :寻找用户者名称为name的文件 
-name file   :寻找文件名为file的文件(可以使用通配符


本文出自 “站在巨人的肩膀上看世界” 博客,请务必保留此出处http://lixiaotao.blog.51cto.com/985722/1753536

以上是关于which, whereis, locate, find的区别的主要内容,如果未能解决你的问题,请参考以下文章

四个查找命令find,locate,whereis,which的区别

Linux下的which,whereis,locate,find命令的区别

使用 whereis/which/locate 查找文件

Linux学习总结(十五)文件查找 which whereis locate find

linux命令中which、whereis、locate有啥区别?

shell编程之find/which/whereis/locate