1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件 ind的使用格式如下: # find <指定目录> <指定条件> <指定动作>   - <指定目录>: 所要搜索的目录及其所有子目录默认为当前目录   - <指定条件>: 所要搜索的文件的特征   - <指定动作>: 对搜索结果进行特定的处理 如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上 #find . -name "my*" -ls 搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息 #find . -type f -mmin -10 搜索当前目录中,所有过去10分钟中更新过的普通文件如果不加-type f参数,则搜索普通文件+特殊文件+目录 2. locate locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/mlocate/mlocate.db),这个数据库中含有本地所有文件信息Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库 locate命令的使用实例: # locate /etc/sh 搜索etc目录下所有以sh开头的文件 # locate ~/m 搜索用户主目录下,所有以m开头的文件 # locate -i ~/m 搜索用户主目录下,所有以m开头的文件,并且忽略大小写 3. whereis whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)如果省略参数,则返回所有信息 补充: -u : 没有说明文档的文件 4. which which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令 5. type type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令 type命令的使用实例: # type cd cd is a shell builtin 系统会提示,cd是shell的自带命令(builtin) # type yum yum is hashed (/usr/bin/yum) 系统会提示,yum是一个外部命令,并显示该命令的路径 # type -p yum /usr/bin/yum 加上-p参数后,就相当于which命令 # type -a grep grep is aliased to `grep --color=auto' grep is /usr/bin/grep which 查看可执行文件的位置 which是通过 PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件 whereis 查看文件的位置 可以找到可执行文件和别名(alias); 补充:和man page 和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新 locate 配合数据库查看文件位置 是在数据库里查找,数据库大至每天更新一次 查找前可先使用updatedb命令来更新数据库 find 实际搜寻硬盘查询文件名称 当我们用whereis和locate无法查找到我们需要的文件时,可以使用find,但是find是在硬盘上遍历查 找,因此非常消耗硬盘的资源,而且效率也非常低,因此建议大家优先使用whereis和locate !!注意!! locate查找时,连一些系统关键性位置的文件都可以找出,然而find会受到权限方面的限制,所以同样的过滤条件,locate查找出的文件数量要明显多于find查找出的数量,所以在安全性上locate较find要略逊一筹 如果对安全性要求不高,且对速度上要求高,仅仅需要定位文件的位置而不是多少天修改、访问等其他文件操作的时候,那么用locate