`

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

 
阅读更多
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索。这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用。
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,whereis,locate,find的用法与区别

    本文将详细介绍 `which`, `whereis`, `locate` 和 `find` 这四个命令的用法与区别。 #### 二、`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