Linux下查找相关命令主要有以下4个:which、whereis、locate、find。

(1)which   [-a]    cmdname1 cmdname2 ......

    命令参数:

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

-p  与-n参数相同,但此处的包括了文件的路径。

-w  指定输出时栏位的宽度。

-V  显示版本信息

作用:locate a command,从环境变量PATH中,定位/返回与指定名字相匹配的可执行文件所在的路径

原理:执行which命令时,which会在当前环境变量PATH中依次寻找能够匹配所找命令名字的可执行文件名,不加-a选项,返回第一个匹配的可执行文件的路径,否则依                        次返回满足条件的所有可执行文件的路径名。

适用场合:一般用于查找命令/可执行文件所在的路径。有时候可能在多个路径下存在相同的命令,该命令可用于查找当前所执行的命令到底是哪一个位置处的命令。

(2)whereis    [-bmsu]    filename1  filename2 .......

作用:locate the binary, source, and manual page files for a command.即:定位/返回与指定名字匹配的二进制文件、源文件和帮助手册文件所在的路径。

原理:whereis命令首先会去掉filename中的前缀空格和以.开头的任何字符,然后再在数据库(var/lib/slocate/slocate.db)中查找与上述处理后的filename相匹配的二进                         制文件、源文件和帮助手册文件,使用之前可以使用updatedb命令手动更新数据库。

适用场合:二进制文件、源文件和帮助手册文件路径的查找。

whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。whereis 程序还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。

命令参数:-b   定位可执行文件。-m   定位帮助文件。-s   定位源代码文件。-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

-B   指定搜索可执行文件的路径。-M   指定搜索帮助文件的路径。-S   指定搜索源代码文件的路径。

4.使用实例:

实例1:将和**文件相关的文件都查找出来

命令:whereis svn

svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz

说明:tomcat没安装,找不出来,svn安装找出了很多相关文件

实例2:只将二进制文件 查找出来

命令:whereis -b svn

(3)locate    [option]    filename1 filename2 ......

作用:find files by name from one or more databases prepared by updatedb. 同whereis指令一样,也是从数据库建立的索引中查找,不同的是该命令查找所有部分匹配的文件,使用之前可以使用updatedb命令手动更新数据库。

原理:默认情况下(当filename中不包含通配符*),locate会给出所有与*filename*相匹配的文件的路径。

适用场合:没有文件类型性质的模糊查找(你只记得某个文件的部分名称)。

locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)

locate指定用在搜寻符合条件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录录,可以使用特殊字元(如”*” 或”?”等)来指定范本样式,如指定范本为kcpa*ner, locate会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录录名称为kcpa_ner则会列出该目录下包括 子目录在内的所有档案。

locate指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在 执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改索引数据库。

3.命令参数:

-e   将排除在寻找的范围之外。

-1  如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。

-f   将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案 放在资料库中。

-q  安静模式,不会显示任何错误讯息。

-n 至多显示 n个输出。

-r 使用正规运算式 做寻找的条件。

-o 指定资料库存的名称。

-d 指定资料库的路径

-h 显示辅助讯息

-V 显示程式的版本讯息

4.使用实例:

实例1:查找和pwd相关的所有文件

命令:locate pwd

实例2: 搜索etc目录下所有以sh开头的文件

命令:locate /etc/sh

实例3:搜索etc目录下,所有以m开头的文件

命令:locate /etc/m

(4)find    [option]    [path1  path2  ......]    [filename]

参数说明:

时间查找参数:

-atime  n: 将n*24小时内access过的文件列出来

-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的文件(可以使用通配符)

作用:search for files in a directory hierarchy. 从当前目录递归的搜索文件。

原理:遍历当前工作目录及其子目录,find命令是在硬盘上遍历查找,非常耗硬盘资源,查找效率相比whereis和locate较低。

适用场合:能用which、whereis和locate的时候尽量不要用find.

4个命令的比较如下表所示:

Linux下的查找命令which、whereis、locate、find(6/20)的更多相关文章

  1. linux的查找命令 find whereis locate

    Linux 有三个查找文件的命令:find, whereis, locate 其中find 不常用,whereis与locate经常使用,因为find命令速度较慢,因为whereis与locate是利 ...

  2. linux下find查找命令用法

    Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时 ...

  3. linux中的查找命令find,locate,which,whereis

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了.  which       查看可执行文 ...

  4. Linux下文件查找命令find笔记

    在Linux命令下如果需要快速自己系统所需要处理的文件,可以通过find命令快速进行检索. 如果想在某个路径下查找相应的文件可以执行如下命令: find path -name filename # p ...

  5. linux下的查找命令

    whereis <程序名称> 查找软件的安装路径 -b 只查找二进制文件 -m 只查找帮助文件 -s 只查找源代码 -u 排除指定类型文件 -f 只显示文件名 -B <目录> ...

  6. linux下vim 查找命令

    在命令模式下输入/word 这个是查找文件中“word”这个单词,是从文件上面到下面查找?word 这个是查找文件中“word”这个单词,是从文件下上面到面查找

  7. linux中查找命令find、locate、whereis、which、type区别

    linux中查找命令find.locate.whereis.which.type区别 1. find Java代码 find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件.与查询数据库(/ ...

  8. linux 文件查找,which,whereis,locate,find

    linux 文件查找,which,whereis,locate,find 一:which 主要用于查找可执行命令的所在位置: 如图,查找命令 ls的目录: 二:whereis 主要用于查找命令的帮助文 ...

  9. linux 下用find命令查找文件,rm命令删除文件

    linux 下用find命令查找文件,rm命令删除文件. 删除指定目录下指定文件find 要查找的目录名 -name .svn |xargs rm -rf 删除指定名称的文件或文件夹: find -t ...

随机推荐

  1. 数组有没有length()这个方法?String有没有length()这个方法?

    数组有没有length()这个方法?String有没有length()这个方法? 解答:数组没有length()方法 它有length属性 String有length()方法.

  2. SQL Server RAISERROR() 函数

    生成错误消息并启动会话的错误处理. RAISERROR 可以引用 sys.messages 目录视图中存储的用户定义消息,也可以动态建立消息. 该消息作为服务器错误消息返回到调用应用程序,或返回到 T ...

  3. 【微信小游戏】文件系统,远程加载资源打破4M限制

    一.前提 微信小游戏,对游戏包体的大小有严格是限制,上传文件大小<4M,但是本地缓存文件有50M空间,也就是说我们可以将一些资源放到网上,然后缓存到本地. 二.官方概念 文件系统 文件系统是小程 ...

  4. PDO防止sql注入的机制

    使用PDO訪问MySQL数据库时,真正的real prepared statements 默认情况下是不使用的. 为了解决问题,你必须禁用 prepared statements的仿真效果. 以下是使 ...

  5. 爬虫实战【11】Python获取豆瓣热门电影信息

    之前我们从猫眼获取过电影信息,而且利用分析ajax技术,获取过今日头条的街拍图片. 今天我们在豆瓣上获取一些热门电影的信息. 页面分析 首先,我们先来看一下豆瓣里面选电影的页面,我们默认选择热门电影, ...

  6. Leetcode-Combinations Sum II

    Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in ...

  7. delphi ----处理SQL server主键自增,并给定值

    获取一个表中最大的值. function GetNEWID(tablename: string): string; begin Result:=''; with DMW_Public.DQ_Pub d ...

  8. 系统根据用户cookies,为用户打上各种标签

    DSP营销学院_品友学院 | 品友推广官网 http://e.ipinyou.com/school_article40.html 智能算法+动态出价=最大发挥推广费用的价值 针对每一个曝光进行甄别和竞 ...

  9. Scalable IO in Java

    Scalable IO in Java http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf 大部分IO都是下面这个步骤, Most have same basi ...

  10. 使用jQuery操作Cookies

    转载自: https://www.cnblogs.com/yonge/articles/2698106.html Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的 ...