`

linux下which、whereis、locate、find 命令的区别

 
阅读更多

(转自)http://blog.csdn.net/doc_sgl/article/details/8674150

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索。
1、which 
语法: 

[root@redhat ~]# which 可执行文件名称 

which是通过 PATH环境变量到该路径内查找可执行文件,每个用户的环境变量可能不同,所以搜索出来的结果也可能不同。可能用echo $PATH查看当前环境变量。-a可以列出所有PATH目录下存在的文件,而不仅仅是找到的第一个文件。默认只显示找到的第一个文件。注意:which只会搜寻可执行文件,普通文件即使在$PATH变量路径中,也是查找不到的。

例如: 
[root@redhat ~]# which passwd 
/usr/bin/passwd 


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命令那样,通 过遍历硬盘来查找,效率自然会很高。 
但是该数据库文件并不是实时更新,默认情况下RHDL和centos一天更新一次,因此,我们在用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 根据环境变量PATH查找,一般只查找可执行文件,可以找到可执行文件和别名(alias)

分享到:
评论

相关推荐

    which,whereis,locate,find的用法与区别

    本文将详细介绍 `which`, `whereis`, `locate` 和 `find` 这四个命令的用法与区别。 #### 二、`which` 命令 `which` 命令用于查找可执行文件的位置。当您想要知道某个命令或脚本文件具体位于系统中的哪个目录时,`...

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

    ### Linux下which、whereis、locate、find命令的详细区别及应用 #### 1. which命令 `which`命令主要用于查找可执行文件的位置。当您不确定一个命令或程序的完整路径时,`which`可以帮助您快速定位其所在位置。这个...

    linux下which、whereis、locate、find命令的区别.docx

    本文将详细介绍`which`、`whereis`、`locate`、`find`这四个命令的区别,并通过具体示例进行对比,帮助读者更好地理解这些命令的功能及应用场景。 ### 1. `which` 命令 `which` 命令用于查找用户可执行命令的完整...

    Linux下的文件查找类命令.pdf

    Linux下的文件查找类命令 Linux 操作系统中,文件查找类命令是系统管理员不可或缺的基本技能之一。在 Linux 系统中,有多种文件查找类命令,每个命令都有其特点和应用场景。本文将对 Linux 下的文件查找类命令进行...

    Linux的五个查找命令.pdf

    whereis和which命令则用于查找程序的位置;type命令则用来区分某个命令是shell的内置功能还是外部程序。 总的来说,这些命令是Linux系统管理员和用户必备的工具,通过灵活运用它们可以极大地提高工作效率。在实践...

    Linux教程,主要内容:Linux 命令、Linux 系统运维、软件运维、精选常用Shell脚本

    查看 Linux 命令帮助信息 - 关键词:help, whatis, info, which, whereis, man Linux 文件目录管理 - 关键词:cd, ls, pwd, mkdir, rmdir, tree, touch, ln, rename, stat, file, chmod, chown, locate, find, cp, ...

    Linux教程,主要内容:Linux 命令、Linux 系统运维、软件运维、精选常用Shell脚本.zip

    查看 Linux 命令帮助信息 - 关键词:help, whatis, info, which, whereis, man Linux 文件目录管理 - 关键词:cd, ls, pwd, mkdir, rmdir, tree, touch, ln, rename, stat, file, chmod, chown, locate, find, cp, ...

    linux命令.txt

    当用户需要快速找到某个命令的位置时,使用 `whereis` 命令非常便捷。 #### 三十二、locate **命令功能:** `locate` 命令用于快速查找文件位置。 **使用场景:** 当用户需要快速定位某个文件的位置时,使用 `...

    linux查看目录方法

    本文将详细介绍四个主要的命令,帮助用户在 Linux 环境下有效地查找目录或文件:`find`、`locate`、`which` 和 `whereis`。 1. **find 命令** `find` 是 Linux 中最强大的文件查找工具,它允许用户基于各种条件来...

    Linux命令大全(CHM格式离线版)

    whereis which cat chattr chgrp chmod chown cksum cmp cp cut indent 磁盘管理 cd df dirs du edquota eject lndir ls mcd mdeltree mdu mkdir mlabel mmd mmount mrd mzip pwd quota quotacheck quotaoff quotaon...

    Linux基础命令第二周练习

    3. locate 命令:该命令与 whereis 类似,是通过查找预先生成的文件列表后可直接跟文件名。 4. find 命令:用于查找文件,find 命令可以根据文件的访问时间、修改时间、文件名、文件类型等条件来查找文件。 四、...

    linux入门命令(linux 基本命令)

    3. **专门查找可执行程序**: 使用 `whereis` 命令查找可执行程序的位置、源代码和帮助文档。 4. **快速查找文件**: 使用 `locate` 命令快速查找文件,它基于已建立的数据库进行搜索。 5. **环境变量中的查找**: 使用...

    Linux常见命令与shell脚本

    1.24 whereis和which查找命令所在目录 13 1.25 grep搜索文件内容 13 1.26 tar文档管理 14 1.27 gzip/gunzip 和 bzip2/bunzip2文件压缩/解压缩 15 1.28 unzip winzip文件解压缩 17 1.29 其他常用命令 17 2 vi编辑器 ...

    Linux which命令的具体使用

    whereis 查看文件的位置。 locate 配合数据库查看文件位置。 find 实际搜寻硬盘查询文件名称。 01. 命令概述 查找环境变量中的文件 which 命令用于查找并显示给定命令的绝对路径,环境变量 PATH 中保存了查找...

    Linux系统中怎么搜索文件命令大全.docx

    本文将详细介绍三个常用的文件搜索命令:`which`、`whereis`和`find`,以及相关的使用技巧。 1. **which命令** `which`命令主要用于查找指定命令在系统中的具体路径。当你在终端输入一个命令时,系统会从环境变量`...

    Linux常用操作命令

    - `whereis` 命令用于查找二进制文件、源代码文件等的位置。 - 示例:`whereis ls`(显示`ls`命令的相关位置) 37. **寻找特定档案:locate** - `locate` 命令快速查找文件。 - 示例:`locate file`(查找名为`...

    Linux常用的六十条命令

    19. whereis命令:搜索文件或目录的路径。 20. which命令:搜索可执行文件的路径。 用户管理 21. su命令:切换用户身份。 22. sudo命令:临时获取超级用户权限。 23. crond命令:计划任务管理,支持周期性执行命令...

    网络安全学习linux部分命令

    - **which/whereis**:分别查找命令的执行路径和帮助文档的位置。 了解并熟练运用这些命令,能极大提升你在Linux环境中的操作效率和问题解决能力,对于网络安全的学习来说,也是基础且必要的技能。在实际操作中,...

    第6章linux系统查找

    在Linux系统中,查找文件和命令是日常操作的重要部分,本章主要介绍四个常用的查找工具:`which`、`whereis`、`locate`和`find`,它们各自有不同的特性和用途。 首先,`which`命令用于查找指定的可执行程序或文件。...

    红旗linux基本命令练习宣贯.pdf

    whereis 命令:whereis 命令用于查找命令的位置。使用方法:whereis <命令名>,查找命令的位置。 locate 命令:locate 命令用于查找文件。使用方法:locate <文件名>,查找文件。 find 命令:find 命令用于查找...

Global site tag (gtag.js) - Google Analytics