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

我们经常在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 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

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)

时间: 2025-01-15 07:53:15

[转]Linux下which、whereis、locate、find 命令的区别的相关文章

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

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:  which  查看可执行文件的位置. whereis 查看文件的位置.  locate   配合数据库查看文件位置. find   实际搜寻硬盘查询文件名称. 1.which  which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果.也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令. 1.1.命令格式: which 可

Linux下几种文件传输命令

Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中被窃取,比FTP有更高的安全性.在功能方面与FTP很类似,不仅可以传输文件数据,而且可以进行远程的文件管理(如建立,删除,查看文件列表等操作).Sftp与ftp虽然只有一字之差,但基于

linux下常用的日志分析命令

linux下常用的日志分析命令 本文介绍下,在linux中常用的一些分析日志的命令行或脚本,有需要的朋友参考下. 形如下面这样的access.log日志内容: 211.123.23.133 – - [10/Dec/2010:09:31:17 +0800] “GET /query/trendxml/district/todayreturn/month/2009-12-14/2010-12-09/haizhu_tianhe.xml HTTP/1.1″ 200 1933 “-” “Mozilla/5.

rlwrap: command not found和解决linux下sqlplus 提供浏览历史命令行的功能

rlwrap工具可以解决linux下sqlplus 提供浏览历史命令行的功能,和删除先前输入错误的字母等问题 1.安装 需要readline包 这个安装光盘就有 [[email protected] RedHat]# cd RPMS/[[email protected] RPMS]# rpm -Uvh readline*warning: readline-4.3-13.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60eerror: Failed

linux下的find文件查找命令与grep文件内容查找命令

linux下的find文件查找命令与grep文件内容查找命令 在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等. (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找. 一.find命令 基本格式:find  path expression 1.按照文件名查找 (1)find / -

[原创] Linux下几种文件传输命令 sz rz sftp scp介绍

Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中被窃取,比FTP有更高的安全性.在功能方面与FTP很类似,不仅可以传输文件数据,而且可以进行远程的文件管理(如建立,删除,查看文件列表等操作).Sftp与ftp虽然只有一字之差,但基于的传输协议却是不同的.因此不能用sftp client去连

Linux下压缩与解压命令tar

tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩. -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? -v :压缩的过程中显示文件!这个常用

Linux下的文件夹创建命令使用实践

[文章摘要] 本文以实际的C源程序为样例,介绍了Linux下的文件夹创建命令(mkdir)的用法.为相关开发工作的开展提供了故意的參考. [关键词] C语言  Linux  文件夹创建  makefile  开发 一.mkdir命令简单介绍 mkdir命令用来创建指定名称的文件夹,其命令格式为:mkdir [选项] 文件夹... 当中,[选项]能够是"-m"."-p"或"-v". 此外,文件夹名是区分大写和小写的. 二.本程序流程 本文中的程序用

linux下维护服务器之常用命令

linux下维护服务器之常用命令! 第1套如下: 正则表达式: 1.如何不要文件中的空白行和注释语句: [[email protected] ~]# grep -v '^$' 文件名 |grep -v '^#' 2.如何查阅系统上面正在运作当中的程序呢? 利用静态的 ps 或者是动态的top,还能以 pstree 来查阅程序树之间的关系! 一个是叧能查阅自己 bash 程序癿『 ps -l 』一个则是可以查阅 所有系统运作癿程序『 ps aux 』 [[email protected] ~]#

Linux下修改Oracle数据库字符集命令

常见情形:从服务器备份Oracle数据库后再到本地机器上还原Oracle数据库的时候经常会碰见数据库字符编码不一致的情况,可以用以下命令来修改本地的Oracle数据库字符编码,然后顺利还原Oracle数据库到本地机器上 操作指令: [[email protected] ~]$ sqlplus /nolog SQL> conn /as sysdba; SQL>select userenv('language') from dual; SQL>SHUTDOWN IMMEDIATE SQL&g