find最强大,但是检索硬盘,比较慢;

whereis只能查二进制文件、说明文档,源文件等;

locate能查所有文件,但跟whereis一样都是查数据库里的内容,速度快,但有延时;

which 只能寻找执行文件 ,并在PATH变量里面寻找。

阿舍在用指令操作Ubuntu的时候,经常会需要知道档案的路径,所以,也就常常会用到搜寻档案的指令,阿舍比较常用的是whereis和find,其实,还有locate和which二个指令可用,这四个指令都有不同的功能,阿舍一直时间去搞清楚,今天花了点时间,就把它整理如下了。

find 这个算是功能最多的指令,可以用依档名、拥有者、群组和权限...等等一堆来搜寻档案,不过,find指令是一定要指定搜寻的路径,否则就只有搜寻目前所在的资料夹,例如,阿舍在家目录用find hosts的指令来搜寻hosts档的话,就一定找不到东西,如果改用find /etc hosts的话,就会出现一堆档案名称里有hosts这个四个字的所有档案出来,如果再改成sudo find /etc -name hosts就会找出更接近我们要找的档案列表出来的。

locate 这个指令和其他三个指令不同的地方是,locate指令并不是宜的去搜寻档案,而是去搜寻由updatedb指令所建立和更新的资料库并读入记忆体中,所以,locate指令的搜寻速度远比其他的指令来的快,因此,当阿舍执行locate hosts指令后,几乎是马上就列出档案名称里有hosts这个四个字的所有档案出来哩!不过,通常优点都是来自弱点,只要是安装之后,在还没有执行updatedb之前,这些新的档案用locate指令是找不到的。

whereis 这个指令只会搜寻几个特定的路径,像是/usr、/bin或/etc等,适合用来搜寻Ubuntu的执行档和原始档及man说明,如果用whereis host来搜寻host档,就能够找出需要的结果,如果用来搜寻家目录的档案,就会找不到的。

which 这个指令搜寻的范围比前一个的whereis更小,which指令只用来搜寻Ubuntu/Linux的指令程式,如果,阿舍用which hosts的指令来找hosts的话,很抱歉喔!一定是找不到的,因为hosts不是指令,那么如果阿舍改成which which或which php5的话,马上就会有结果跑出来,因为which和php5都是指令哩!

这样整理下来,阿舍的结论是,要快就用locate,要准就用find,要查系统档案就用whereis,要查指令就用which,怕麻烦的话,就只要好好学会find指令就可以了。

四个查找命令find,locate,whereis,which的区别的更多相关文章

  1. Linux的五个查找命令find,locate,whereis,which,type

    Linux的五个查找命令 1. find 最常见且最强大的命令,可以查找任何文件. 格式 $ find   指定目录   指定条件   指定动作   指定目录: 所要搜索的目录及其子目录,默认当前目录 ...

  2. 查找命令which、whereis、locate

      1.find 最常用和最强大的查找命令.它能做到实时查找,精确查找,但速度慢. find的使用格式如下: $ find [指定目录] [指定条件] [指定动作] 指定目录:是指所要搜索的目录和其子 ...

  3. Linux下4个查找命令which、whereis、locate、find的总结

    (1)which   [-a]    cmdname1 cmdname2 ...... 作用:locate a command,从环境变量PATH中,定位/返回与指定名字相匹配的可执行文件所在的路径 ...

  4. Linux下的查找命令which、whereis、locate、find(6/20)

    Linux下查找相关命令主要有以下4个:which.whereis.locate.find. (1)which   [-a]    cmdname1 cmdname2 ...... 命令参数: -n  ...

  5. Linux下查找命令 —— find、grep、 which、 whereis、 locate

    find命令 基本格式 find < path > < expression > < cmd > ''' path: 所要搜索的目录及其所有子目录.默认为当前目录. ...

  6. Linux系列之查找命令

    前言 Linux 有四个常用的查找命令:locate.whereis.which 和 find.本文介绍它们的区别和简单用法. locate命令 这个命令将检查你的整个文件系统,并找到该关键词的每一次 ...

  7. Linux下的五个查找命令:grep、find、locate、whereis、which

    原文转自 http://www.cnblogs.com/wanqieddy/archive/2011/07/15/2107071.html 1.grep grep(General Regular Ex ...

  8. Linux的五个查找命令(find、locate、whereis、which、type)

    1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件. find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> ...

  9. Linux下相关查找文件命令(find locate which whereis type)

    以下内容摘自:http://blog.csdn.net/jessica1201/article/details/8139249 标注的内容为自己的补充: 我们经常需要在系统中查找一个文件,那么在lin ...

随机推荐

  1. Swift3.0语言教程比较、判断字符串

    Swift3.0语言教程比较.判断字符串 Swift3.0语言教程比较.判断字符串,在一个程序中字符串很多时,常常会做的操作就是对这些字符串进行比较和判断.本小节将讲解这些内容. 1.不区分大小写比较 ...

  2. 在Dreamweaver中安装Emmet(zen-coding)

    在http://www.adobe.com/exchange/em_download/地址下下载好Emmet扩展插件,然后在Dreamweaver找到菜单栏中命令>扩展管理>文件,找到以后 ...

  3. 原生 js 模拟 alert 弹窗

    复制头部的 js 代码到你的 js 文件的任何地方,调用Chef.alert方法传入相应的参数即可并没有什么功能,只是一个提示的作用,可能样式比 alert 的弹窗好看点,css是写在js里的,只要你 ...

  4. POJ3635 Full Tank?(DP + Dijkstra)

    题目大概说,一辆带有一个容量有限的油箱的车子在一张图上行驶,每行驶一单位长度消耗一单位油,图上的每个点都可以加油,不过都有各自的单位费用,问从起点驾驶到终点的最少花费是多少? 这题自然想到图上DP,通 ...

  5. .net平台下C#socket通信(中)

    上篇.net平台下C#socket通信(上)介绍了socket通信的基本原理及最基本的通信方式.本文在此基础上就socket通信时经常遇到的问题做一个简单总结,都是项目中的一些小问题,拿来此处便于下次 ...

  6. hdu1710 Binary Tree Traversals(二叉树的遍历)

    A binary tree is a finite set of vertices that is either empty or consists of a root r and two disjo ...

  7. float浮动问题:会造成父级元素高度坍塌;

    float浮动问题:会造成父级元素高度坍塌: 解决办法:清除浮动:clear:both; 给父元素高度:height(不是很可取) 给父元素:display:inline-black:(问题:marg ...

  8. 利用百度云盘API上传文件至百度云盘

    一.获取Access Token示例 1. 请您将以下HTTP请求直接粘贴到浏览器地址栏内,并按下回车键. https://openapi.baidu.com/oauth/2.0/authorize? ...

  9. NOIp 2012 #1 Vigenère 密码 Label:模拟

    题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南 ...

  10. win8.1上wamp环境中利用apache自带ab压力测试工具使用超简单讲解

    2015.10.4apache自带ab压力测试工具使用:本地环境:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一 ...