find whereis locate which

我们经常在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)

find
/etc/rc.d -name ‘*crond‘ -exec file {} /;

查找/etc/rc.d目录下面所有以crond结束的文件,并使用file指令查看其属性,注意:exec和file间是一个空格,file和{}间是一个空格,file和/;之间是一个空格,/;是一个整体。

要在/usr/linux中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名,有以下几种方法实现
find
/usr/linux -name "*.h" | xargs -n50 grep SYSCALL_VECTOR
grep
SYSCALL_VECTOR /usr/linux
struct
inode *i_back;
struct
inode *av_forw;
struct
inode *av_back;
int
*i_fsptr;
ino32_t
i_number;
ushort
i_ftype;
short
i_fstyp;
off_t
i_size;
ushort
i_uid;
ushort
i_gid;
ushort
i_flag;
ushort
i_want;
ushort
i_count;
short
i_nlink;
dev_t
i_rdev;
#define
i_namtype i_rdev
dev_t
i_dev;
struct
mount *i_mton;

struct
region *i_rp;
struct
stdata *i_sp;
struct
iisem *isem;
struct
iisd *isd;
}
i_un;
#define
i_mnton i_un.i_mton
#define
i_rptr i_un.i_rp
#define
i_sptr i_un.i_sp
#define
i_sem i_un.isem
#define
i_sd i_un.isd

struct
fstypsw *i_fstypp;
long
*i_filocks;
unsigned
long i_mappages;
unsigned
long i_vcode;
short
i_wcnt;
struct
lockb i_cilock;
ushort
i_rdlocks;
}
inode_t;

所以,访问一个文件不能改变inode信息.
使用chown,
chgrp, chmod命令可以很好的比较mtime和ctime
chown改变一个文件的属主,用ctime可以找到,用mtime便找不到.
试试看.

多谢斑竹!
我是在 Solaris 上面试的.我是对 -ctime 不明白.
试的结果如下:
修改文件,-mtime
改了, -ctime 也会改.
访问文件,-atime
改了, -ctime 没变.
chown,
chgrp, chmod,mv, 都会使 -ctime 改变,但不影响 -atime 和 -mtime.
touch
可以改 -mtime and/or -atime,但 touch -a 只改访问时间时,-ctime也改了.
touch
-m 改修改时间时,-ctime当然也改了.
好象还有别的很多东西可以令
-ctime 改变, 搞不清楚.
有什么方法可以显示
-mtime,atime,ctime 吗?
可以用
-ctime 来实现对目录的增量文件进行备份或 transfer 吗 ?
多谢!

没有什么工具显示,(可能是俺不知道)
把下面程序里的st_mtime换成st_ctime,或st_atime便可以得到你要的了.
#i
nclude
int
main
(int argc, char **argv)
{
struct
stat buf;
char
date[80];
char
fname[80];
printf("Enter
filename (with full path) to check mtime : ");
scanf("%s",fname);
stat(fname,
&buf);
printf
("mtime (in sec) of %s = %ld/n", fname, buf.st_mtime);
strcpy(date,
ctime((time_t *)&(buf.st_mtime)));
printf
("mtime (in date) of %s = %s/n", fname, date);
}

至于文件备份,有什么不可以的么?

mtime
ls -l 最近修改文件内容的时间
atime
ls -lu 最近访问文件的时间
ctime
ls -li 最近文件有所改变的状态 ,如文件修改,属性/属主 改变 ,节点 ,链接变化等 ,应该是不拘泥只是时间前后的改变

俺看了ls的帮助,以为只是按ctime或atime排序,显示的时间还是mtime.

仔细比较了一下,ayhan说的是对的.谢谢ayhan.

多谢
ahyan 提示 ! 我在 Solaris 上试过如下:
mtime
用 ls -l 看到
atime
用 ls -lu 看到
ctime
用 ls -lc 看到. (ls -li 只有 inode number)
摘书如下:
-c
Uses time of last modification of the i-node (file
created,
mode changed, and so forth) for sorting (-t)
or
printing (-l or -n).
-u
Uses time of last access instead of last modification
for
sorting (with the -t option) or printing (with the
-l
option).
-i
For each file, prints the i-node number in the first
column
of the report.

我在sco
unix5.0.5中试了一下,好像不对:chmod,chgrp等不会改变ls -il显示的时间;vi,touch倒是有影响。
每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘中的哪个地方。在微软的WINDOWS操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击“开始”-“搜索”中就能按照各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档。
  可是使用linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻烦的事情。毕竟在linux中需要我们使用专用的“查找”命令来寻找在硬盘上的文件。Linux
下的文件表达格式非常复杂,不象WINDOWS,DOS下都是统一的AAAAAAA.BBB格式那么方便查找,在WINDOWS中,只要知道要查找的文件的文件名或者后缀就非常容易查找到。linux中查找文件的命令通常为“find”命令,“find”命令能帮助我们在使用,管理linux的日常事务中方便的查找出我们需要的文件。对于linux新手来说,“find”命令也是了解和学习Linux
文件特点的方法。因为linux发行版本繁多,版本升级很快,在Linux书籍上往往写明某个配置文件的所在位置,往往linux新手按图索骥还是不能找到。比如说REDHAT
Linux 7.O 和REDHAT linux
7.1中有些重要的配置文件所在的硬盘位置和文件目录就有了很大的改变,如果不学会使用“find”命令,那么在成千上万的linux文件中要找到其中的一个配置文件是相当困难的,笔者在没有精通“find”命令之前就吃过这样的苦头。好,下面就详细为大家介绍强大的“find”命令的全部使用方法和用途。

通过文件名查找法:
  这个方法说起来就和在WINDOWS下查找文件一样容易理解了。如果你把这个文件放在单个的文件夹里面,只要使用常见的“ls"命令就能方便的查找出来,那么使用“find”命令来查找它就不能给你留下深刻的印象,毕竟“find”命令的强大功能不止这个。如果知道了某个文件的文件名,而不知道这个文件放到哪个文件夹,甚至是层层套嵌的文件夹里。举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至在系统的某个地方也不知道,则这是可以使用如下命令:
  find
/ -name httpd.conf
  这个命令语法看起来很容易就明白了,就是直接在find后面写上
-name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机屏幕上显示出查找结果列表:
  etc/httpd/conf/httpd.conf
  这就是httpd.conf这个文件在linux系统中的完整路径。查找成功。
  如果输入以上查找命令后系统并没有显示出结果,那么不要以为系统没有执行
find/ -name httpd.conf命令,而可能是你的系统中没有安装Apache服务器,这时只要你安装了Apache Web服务器,然后再使用find
/ -name httpd.conf就能找到这个配置文件了。

无错误查找技巧:
  在linux系统中“find”命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理员的专利。但是普通用户使用“find”命令时也有可能遇到这样的问题,那就是L
inux系统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。这样普通用户就没有权限用“find”命令来查询这些目录或者文件。当普通用户使用“find”命令来查询这些文件目录是,往往会出现"Permissiondenied."(禁止访问)字样。系统将无法查询到你想要的文件。为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找文件,输入
  find
/ -name access_log 2>/dev/null
  这个方法是把查找错误提示转移到特定的目录中去。系统执行这个命令后,遇到错误的信息就直接输送到stderrstream
2 中,access_log 2 就是表明系统将把错误信息输送到stderrstream
2中,/dev/null是一个特殊的文件,表明空的或者错误的信息,这样查询到的错误信息将被转移了,不会再显示了。

  在linux系统查找文件也会遇到这样一个实际问题。如果我们在整个硬盘,这个系统中查找某个文件就要花费相当长的一段时间,特别是大型linux系统和容量较大的硬盘,文件放在套嵌很深的目录中的时候。如果我们知道了这个文件存放在某个大的目录中,那么只要在这个目录中往下找就能节省很多时间了。使用find
/etc -name httpd.conf 就可以解决这个问题。上面的命令就是表示在etc目录中查询httpd.conf这个文件。这里再说明一下“/
”这个函数符号的含义,如果输入 “find/ ”就是表示要求linux系统在整个
ROOT目录下查找文件,也就是在整个硬盘上查找文件,而“find/etc”就是只在
etc目录下查找文件。因为“find/etc”表示只在etc目录下查找文件,所以查找的速度就相应要快很多了。

根据部分文件名查找方法:
  这个方法和在WINDOWS中查找已知的文件名方法是一样的。不过在linux中根据部分文件名查找文件的方法要比在WINDOWS中的同类查找方法要强大得多。例如我们知道某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现的,输入:
  find
/etc -name ‘*srm*‘
  这个命令表明了linux系统将在/etc
整个目录中查找所有的包含有srm这3个字母的文件,比如 absrmyz,tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件是由 srm
这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:
  find/etc
-name ‘srm*‘
  这是只有像srmyz
这样的文件才被查找出来,象absrmyz或者absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。

根据文件的特征查询方法:
  如果只知道某个文件的大小,修改日期等特征也可以使用"find"命令查找出来,这和
WINDOWS系统中的"搜索"功能是基本相同的。在微软的"搜索"中WINDOWS中的"搜索助理"使得搜索文件和文件夹、打印机、用户以及网络中的其他计算机更加容易。它甚至使在
Internet
上搜索更加容易。"搜索助理"还包括一个索引服务,该服务维护了计算机中所有文件的索引,使得搜索速度更快。使用"搜索助理"时,用户可以指定多个搜索标准。例如,用户可以按名称、类型及大小搜索文件和文件夹。用户甚至可以搜索包含特定文本的文件。如果用户正使用
Active Directory,这时还可以搜索带有特定名称或位置的打印机。
  例如我们知道一个linux文件大小为1,500
bytes,那么我们可是使用如下命令来查询 find / -size 1500c,字符 c
表明这个要查找的文件的大小是以bytes为单位。如果我们连这个文件的具体大小都不知道,那么在linux中还可以进行模糊查找方式来解决。例如我们输入find/
-size +10000000c
这个命令,则标明我们指定系统在根目录中查找出大于10000000字节的文件并显示出来。命令中的“+”是表示要求系统只列出大于指定大小的文件,而使用“-”则表示要求系统列出小于指定大小的文件。下面的列表就是在linux使用不同"find"命令后系统所要作出的查找动作,从中我们很容易看出在linux中使用"find"
命令的方式是很多的,"find"命令查找文件只要灵活应用,丝毫不必在WINDOWS中查找能力差。
  find
/ -amin -10 # 查找在系统中最后10分钟访问的文件
  find
/ -atime -2 # 查找在系统中最后48小时访问的文件
  find
/ -empty # 查找在系统中为空的文件或者文件夹
  find
/ -group cat # 查找在系统中属于 groupcat的文件
  find
/ -mmin -5 # 查找在系统中最后5分钟里修改过的文件
  find
/ -mtime -1 #查找在系统中最后24小时里修改过的文件
  find
/ -nouser #查找在系统中属于作废用户的文件
  find
/ -user fred #查找在系统中属于FRED这个用户的文件
  下面的列表就是对find命令所可以指定文件的特征进行查找的部分条件。在这里并没有列举所有的查找条件,参考有关linux有关书籍可以知道所有find命令的查找函数。
-amin
n
查找系统中最后N分钟访问的文件
-atime
n
查找系统中最后n*24小时访问的文件
-cmin
n
查找系统中最后N分钟被改变状态的文件
-ctime
n
查找系统中最后n*24小时被改变状态的文件
-empty
查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
-false
查找系统中总是错误的文件
-fstype
type
查找系统中存在于指定文件系统的文件,例如:ext2
-gid
n
查找系统中文件数字组
ID 为 n的文件
-group
gname
查找系统中文件属于gnam文件组,并且指定组和ID的文件

Find命令的控制选项说明:
Find命令也提供给用户一些特有的选项来控制查找操作。下表就是我们总结出的最基本,最常用的find命令的控制选项及其用法。
选项
用途描述
-daystart
.测试系统从今天开始24小时以内的文件,用法类似-amin
-depth
使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
-follow
遵循通配符链接方式查找;
另外,也可忽略通配符链接方式查询
-help
显示命令摘要
-maxdepth
levels
在某个层次的目录中按照递减方法查找
-mount
不在文件系统目录中查找,
用法类似 -xdev.
-noleaf
禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找
-version
打印版本数字

使用-follow选项后,find命令则遵循通配符链接方式进行查找,除非你指定这个选项,否则一般情况下find命令将忽略通配符链接方式进行文件查找。

-maxdepth选项的作用就是限制find命令在目录中按照递减方式查找文件的时候搜索文件超过某个级别或者搜索过多的目录,这样导致查找速度变慢,查找花费的时间过多。例如,我们要在当前(.)目录技巧子目录中查找一个名叫fred的文件,我们可以使用如下命令
find
. -maxdepth 2 -name fred

假如这个fred文件在./sub1/fred目录中,那么这个命令就会直接定位这个文件,查找很容易成功。假如,这个文件在.
/sub1/sub2/fred目录中,那么这个命令就无法查找到。因为前面已经给find命令在目录中最大的查询目录级别为2,只能查找2层目录下的文件。这样做的目的就是为了让find命令更加精确的定位文件,如果你已经知道了某个文件大概所在的文件目录级数,那么加入-maxdepth
n 就很快的能在指定目录中查找成功。

使用混合查找方式查找文件
find命令可以使用混合查找的方法,例如我们想在/tmp目录中查找大于100000000字节并且在48小时内修改的某个文件,我们可以使用-and
来把两个查找选项链接起来组合成一个混合的查找方式。
find
/tmp -size +10000000c -and -mtime +2

学习过计算机语言的朋友都知道,在计算机语言里,使用and
,or 分别表示“与”和“或”的关系。在linux系统的查找命令中一样通用。
还有这样的例子,
find
/ -user fred -or -user george

我们可以解释为在/tmp目录中查找属于fred或者george这两个用户的文件。
在find命令中还可以使用“非”的关系来查找文件,如果我们要在/tmp目录中查找所有不属于panda的文件,使用一个简单的
find
/tmp ! -user panda
命令就可以解决了。很简单。

查找并显示文件的方法
查找到某个文件是我们的目的,我们更想知道查找到的文件的详细信息和属性,如果我们采取现查找文件,在使用LS命令来查看文件信息是相当繁琐的,现在我们也可以把这两个命令结合起来使用。
find
/ -name "httpd.conf" -ls

系统查找到httpd.conf文件后立即在屏幕上显示httpd.conf文件信息。
12063
34 -rw-r--r-- 1 root root 33545 Dec 30 15:36
/etc/httpd/conf/httpd.conf

下面的表格就是一些常用的查找文件并显示文件信息的参数和使用方法
选项
用途描述
-exec
command;
查找并执行命令
-fprint
file
打印文件完整文件名
-fprint0
file
打印文件完整文件名包括空的文件
-fprintf
file format
打印文件格式
-ok
command;
给用户命令执行操作,根据用户的Y
确认输入执行
-printf
format
打印文件格式
-ls
打印同种文件格式的文件

总结:到这里为止我们已经学习了这名多关于find命令的使用方法,也列出了很多常用的find命令的选项,如果我们能熟练掌握在linux中find命令的使用方法,那么在Linux中查找文件也不是一件困难的事情。

时间: 2024-11-13 06:41:52

find whereis locate which的相关文章

linux文件名称查找which,whereis,locate

1. 文件名称查找 使用find查询时.因为磁盘查询.所以速度较慢. 所以linux下查询更常使用which, whereis, locate来查询,因为是利用数据库查询.所以速度非常快. 2. which 我们经常使用的ls命令.假设我们想知道这些经常使用命令放在哪儿. 就使用which命令来查询地址. which使用PATH 环境变量去查找文件名称, which -a 返回全部的查到的命令, 默认返回第一条. $ which grep /bin/grep $ which ll alias l

linux文件名查找which,whereis,locate

1. 文件名查找 使用find查询时,由于磁盘查询,所以速度较慢, 所以linux下查询更常使用which, whereis, locate来查询,由于是利用数据库查询,所以速度很快. 2. which 我们常用的ls命令,如果我们想知道这些常用命令放在哪儿, 就使用which命令来查询地址. which使用PATH 环境变量去查找文件名, which -a 返回所有的查到的命令, 默认返回第一条. $ which grep /bin/grep $ which ll alias ll='ls -

文件查找 /which/whereis/locate/find/grep

Which #查找固定的目录# [[email protected] home]# which ba /usr/bin/which: no ba in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin) [[email protected] home]# which ls alias ls='ls --color=auto' /bin/ls 我们可以看到 whic

linux的查找命令 find whereis locate

Linux 有三个查找文件的命令:find, whereis, locate 其中find 不常用,whereis与locate经常使用,因为find命令速度较慢,因为whereis与locate是利用数据库来查找数据,而find直接查找硬盘. 1 whereis whereis 命令只能用户程序名称的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m) 和源代码文件(参数-s). 如果省略参数,则返回所有信息.和find相比,whereis查找的速度非常快,这是因为linux系统

linux下查找文件或目录(which,whereis,locate,find)

命令 查找对象 查找速度 备注 which 可执行文件  根据PATH变量的内容去寻找可执行文件  不同的PATH配置会有不一样的结果 whereis 程序名的搜索  根据数据库来寻找,速度快  只支持二进制文件,源代码,man手册 locate 文件或目录  根据数据库来寻找,速度快  更新数据库:$sudo updatedb find 文件或目录  在硬盘里寻找,速度慢  NA

Linux下各种查找命令(find, grep, which, whereis, locate)

find命令 find < path > < expression > < cmd > path: 所要搜索的目录及其所有子目录.默认为当前目录. expression: 所要搜索的文件的特征. cmd: 对搜索结果进行特定的处理. 如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上. find命令常用选项及实例 -name 按照文件名查找文件. find /dir -name filename 在/

which, whereis, locate, find的区别

which       查看可执行文件的位置,这些可执行文件都是在PATH环境变量中设置好的,所以which基本上都是查找可执行的文件 [[email protected] ~]# which yum /usr/bin/yum whereis    查看文件的位置 [[email protected] ~]# whereis [-bmsu] 文件或者目录名称 参数说 明: -b : 只找二进制文件 -m: 只找在说明文件manual路径下的文件 -s : 只找source源文件 -u : 没有说

which,whereis,locate,find

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

Linxu命令与文件的搜索 - which, whereis, locate, find

which (寻找『运行档』) [[email protected] ~]# which [-a] command 选项或参数: -a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称 范例一:分别用root与一般帐号搜寻 ifconfig 这个命令的完整档名 [[email protected] ~]# which ifconfig /sbin/ifconfig <==用 root 可以找到正确的运行档名喔! [[email protected] ~]# su -