常用搜索命令------whereis,which,locate,find

摘自:http://312788172.iteye.com/blog/730280

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索。这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用。 
which       查看可执行文件的位置 
whereis    查看文件的位置 
locate       配 合数据库查看文件位置 
find          实际搜寻硬盘查询文件名称

1、which 
语法: 
[[email protected] ~]# which 可执行文件名称 
例如: 
[[email protected] ~]# which passwd 
/usr/bin/passwd 
which是通过 PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件

2、whereis 
语法: 
[[email protected] ~]# whereis [-bmsu] 文件或者目录名称 
参数说 明: 
-b : 只找二进制文件 
-m: 只找在说明文件manual路径下的文件 
-s : 只找source源文件 
-u : 没有说明文档的文件 
例如: 
[[email protected] ~]# whereis passwd 
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz 
将和passwd文件相关的文件都查找出来

[[email protected] ~]# whereis -b passwd 
passwd: /usr/bin/passwd /etc/passwd 
只将二进制文件 查找出来

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

3、 locate 
语法: 
[[email protected] ~]# locate 文件或者目录名称 
例 如: 
[[email protected] ~]# locate passwd 
/home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_DB_war/DB.war/jsp/as/user/passwd.jsp
/home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_admin_war/admin.war/jsp/platform/passwd.jsp
/lib/security/pam_unix_passwd.so 
/lib/security/pam_passwdqc.so 
/usr/include/rpcsvc/yppasswd.x 
/usr/include/rpcsvc/yppasswd.h 
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/rpcsvc/yppasswd.ph 
/usr/lib/kde3/kded_kpasswdserver.la 
/usr/lib/kde3/kded_kpasswdserver.so 
/usr/lib/ruby/1.8/webrick/httpauth/htpasswd.rb 
/usr/bin/vncpasswd 
/usr/bin/userpasswd 
/usr/bin/yppasswd 
…………

4、 find 
语法: 
[[email protected] ~]# 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的文件(可以使用通配符) 
例 如: 
[[email protected] ~]# find / -name zgz 
/home/zgz 
/home/zgz/zgz 
/home/weblogic/bea/user_projects/domains/zgz 
/home/oracle/product/10g/cfgtoollogs/dbca/zgz 
/home/oracle/product/10g/cfgtoollogs/emca/zgz 
/home/oracle/oradata/zgz

[[email protected] ~]# find / -name ‘*zgz*‘ 
/home/zgz 
/home/zgz/zgz1 
/home/zgz/zgzdirzgz 
/home/zgz/zgz 
/home/zgz/zgzdir 
/home/weblogic/bea/user_projects/domains/zgz 
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00006 
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00002 
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00004 
/home/weblogic/bea/user_projects/domains/zgz/zgz.log 
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00008 
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00005

当我们用whereis和locate无法查找到我们需要的文件时,可以使用find,但是find是在硬盘上遍历查 找,因此非常消耗硬盘的资源,而且效率也非常低,因此建议大家优先使用whereis和locate。 
locate 是在数据库里查找,数据库大至每天更新一次。 
whereis 可以找到可执行命令和man page 
find 就是根据条件查找文件。 
which 可以找到可执行文件和别名(alias)

时间: 2024-10-08 01:22:04

常用搜索命令------whereis,which,locate,find的相关文章

linux命令搜索命令whereis 与which

在Linux中命令搜索命令,可能大家听的有点绕口,就是搜搜命令的命令. 首先是whereis,我们查看一下whereis的手册.man whereis man的意思是manual 手册的意思.man命令就是查看某个命令的作用以及使用方法. man whereis whereis - locate the binary,source,and manual page files for a command 定位一个命令的二进制文件,源文件,以及帮助手册. whereis [options] comm

linux 命令 - 命令搜索命令 whereis which

whereis 命令名 搜索命令所在路径以及帮助文档所在位置 选项 -b 只搜索命令所在路径 -m 只搜索帮助文档所在位置 which 命令名 搜索命令所在路径及所包含的别名 PATH环境变量 PATH环境变量:定义的是系统搜索命令的路径 可以使用命令:echo $PATH输出 命令whichis和which都是依赖path路径进行搜索的

命令搜索命令whereis与which

whereis 命令名 #搜索命令所在路径及帮助文档所在位置,只能搜索系统命令. 选项: -b: 只查找可执行文件 -m: 只查找帮助文件 whoami whatis ls #ls 是什么命令 which 文件名 #搜索命令所在路径及别名

Linux命令-文件搜索命令:whereis

whereis useradd 查找命令useradd的所在位置,同时还查出来它的帮助文件所在位置 whereis rm 查找命令rm的所在位置,同时还查出来它的帮助文件所在位置 whereis passwd 查看passwd文件位置,实际上这里会查出passwd命令和passwd配置文件两个的文件位置,已经它们各自对应的帮助文件位置 在linux系统中通常看到****.1.gz就是命令的帮助,*****.5.gz就是配置文件的帮助.

Linux常用命令002之搜索命令locate、whereis、which、find、grep

-20150811 常用搜索命令 -------文件搜索命令---------- -->locate命令  --速度比find快 locate 文件名 在后台数据库中按文件名搜索,搜索速度更快 /var/lib/mlocate #locate命令所搜索的后台数据库 updatedb命令 --新建的文件用locate命令搜索不到,更新数据库后可以 --可以手动更新数据库 updatedb 缺点:只能按照文件名搜索 --------命令搜索命令---------- -->whereis 命令 wh

Linux常用命令-文件搜索命令find

文件搜索命令find 命令名称:find 命令所在路径:/bin/find 执行权限:所有用户 语法:find [搜索范围] [匹配条件] 功能描述:文件搜索 -name 根据文件名搜索 例:find /etc/ -name init 模糊搜索使用通配符* find /etc -name *init* 匹配单个字符使用通配符? find /etc -name init?? -iname 根据文件名搜索(不区分大小写) -size 在目录下根据文件大小查找 例:find / -size +2048

命令与文件的搜寻which、whereis、locate、find的区别

命令档名的搜寻:which 文件档名的搜寻:whereis.locate.find 命令档名的搜寻 在终端机模式当中,连续输入两次tab键能知道使用者有多少命令可以使用 那么命令的完整档名又在何处?比如,命令ls放在何处? which ls 文件档名的搜寻 有时候需要知道文件放在何处,才能对该文件进行一下修改或维护等动作. 一般先用whereis或者locate来检查,如果真找不到,再用find(不很常用) 因为whereis和locate时利用数据库来搜寻数据,所以相当的快速,而没有实际搜寻硬

LInux 文件搜索命令

文件搜索命令  locate 优点:搜索速度很快 缺点: 只能搜索文件名(速度快 耗费资源少) localte  文件名 (在后台数据库中按文件名 搜索,搜索速度快  localte 命令并不是在系统中去搜索 ) 而是会在 /var/lib/mlocate  后台数据库  (#locate 命令所搜索的后台数据库 该数据库是一天一更新) updatedb  可以立刻更新数据库 locate 搜索时: 按照配置文件来进行搜索  /etc/updatedb.conf 配置文件 # 开启搜索限制 pr

Linux学习日志--文件搜索命令

开头总结: 学习了Linux中的文件搜索命令find和locate,系统搜索命令whereis 和which ,字符串搜索命令grep,find和locate的区别和用法格式,什么是path环境变量以及其好处,whereis和which的用法,区别在于查询系统命令内容的不同,grep和find的区别,为什么要引入通配符? 什么情况下用通配符还是正则表达式? Locate文件搜索命令: 1)格式: Locate [文件名] 2)更新数据库 updatedb 好处: 相对于find命令来说,Loca