which       查看可执行文件的位置
whereis    查看文件的位置
locate       配 合数据库查看文件位置
find 实际搜寻硬盘查询文件名称

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

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

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

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

3、 locate
语法:
[root@redhat ~]# locate 文件或者目录名称
例 如:
[root@redhat ~]# 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
语法:
[root@redhat ~]# 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的文件(可以使用通配符)
例 如:
[root@redhat ~]# 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

[root@redhat ~]# 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)

语  法:which [文件...]
说明:查找文件,which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
参  数:
 -n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
 -p  与-n参数相同,但此处的包括了文件的路径。
 -w  指定输出时栏位的宽度。
 -V  显示版本信息

转载于:https://www.cnblogs.com/cl1024cl/archive/2013/01/16/6205745.html

which与whereis区别相关推荐

  1. linux shell which 和 whereis 区别

    which和whereis命令都是Linux操作系统下查找可执行文件路径的命令. which 这条命令主要是用来查找系统***PATH目录下***的可执行文件.说白了就是查找那些我们已经安装好的可以直 ...

  2. Linux基础常用命令

    ps -ef用于查看全格式的全部进程,其中"ps"是在Linux中是查看进程的命令,"-e "参数代表显示所有进程,"-f"参数代表全格式. ...

  3. 马哥Linux学习笔记2-2Linux系统基础使用入门

    终端:用户与主机交互,必然用到的设备. 物理终端:直接进入本机的显示器和键盘设备:/dev/console 虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端,centos6默认启动6个虚拟终端. ...

  4. linux命令撤销进程,linux的命令

    linux的命令 第一部分:简单介绍linux命令 1命令提示符 1.1命令提示(prompt)符: [root@localhost ~]# 管理员用户 [zxm@localhost ~]$ 普通用户 ...

  5. whereis php,Linux命令教程之比较搜索命令whereis与which的区别

    这篇文章主要介绍了Linux命令搜索命令whereis与which的区别的相关资料,这里举例说明该如何区别他们之家的用法,需要的朋友可以参考下 Linux命令搜索命令whereis与which的区别 ...

  6. Linux 中 which、whereis、locate、find的区别

    Linux 中 which.whereis.locate.find的区别 which whereis locate find 总结 which which [-a] cmdname1 cmdname2 ...

  7. which,whereis 的区别(Linux )

    Linux 操作系统中 which 和 whereis 命令的区别 目录 文章目录 Linux 操作系统中 `which` 和 `whereis` 命令的区别 目录 总览 which whereis ...

  8. Linux之whereis、which、find、location的区别和用法

    1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件. find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> ...

  9. whereis, which, locate的区别

    来自http://zhidao.baidu.com/link?url=C2acTbwNvTFsDtTrTZZtf_oCYcBHnjwJluwXhI99C_49aubR2HReFLOwv-JciXrCD ...

最新文章

  1. PAT (Advanced Level) 1014. Waiting in Line (30)
  2. 什么是防火墙,真正意义上的防火墙
  3. python取均匀不重复的随机数
  4. 华为面试题——一道关于指针方面的编程题(C/C++)
  5. 【CyberSecurityLearning 72】DC系列之DC-3渗透测试(Joomla)
  6. apache poi 修改docx表格_JAVA poi对word.docx文件的修改
  7. pandas按照字典格式替换dataframe的值
  8. CentOS 7 使用源代码编译并安装软件
  9. JAVA MD5加密用户信息
  10. hdu 1251 统计难题 (字典树入门题)
  11. 《狂人C》阅读笔记(1)
  12. 小白攻略(三):数学建模论文的写作
  13. 有道云笔记linux使用教程,巧妙地使用typora编辑有道云笔记
  14. 转:时域错误隐藏个人理解_Phinex的博客_雅虎博客_雅虎空间
  15. iOS平台游戏安全之IPA破解原理及防御
  16. 魔兽私服 启动mysql_魔兽私服TrinityCore 运行调试流程
  17. jpa vue管理系统_如何通过利用Java流获取类型安全和直观的Hibernate / JPA查询
  18. 淘宝url中的spm编码是怎么生成的呢?
  19. Spring AOP源码解析-拦截器链的执行过程
  20. 一曲相思用计算机怎么按,抖音这人间袅袅炊烟是什么歌 抖音一曲相思完整版...

热门文章

  1. MongoDB Cursor Methods
  2. Pandas MultiIndex(多重索引)
  3. matlab elif,MATLAB与fftfilt相当于Python
  4. php 防止url输入,php防止伪造数据从地址栏URL提交的方法
  5. 项目管理学习总结(10)——项目经理需要具备8点管理素质
  6. Linux学习总结(8)——VMware v12.1.1 专业版以及永久密钥
  7. 计算机知识点背诵了就忘了怎么办,背得滚瓜烂熟的知识点,为什么一上考场全忘了?这样做,事半功倍…...
  8. Excel的html转换成unicode,EXCEL表格中把汉字转换成unicode编码
  9. Centos 6.2 单网卡安装pptpd 经验
  10. PostgreSQL 备库apply延迟原理分析与诊断