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指令就可以了。

最新文章

  1. ABP框架 - 动态Web Api层
  2. 使用ruby搭建简易的http服务和sass环境
  3. 【小贴士】虚拟键盘与fixed带给移动端的痛!
  4. Qt5.3.0 for Android开发环境配置
  5. 演示一个使用db vault进行安全控制的示例
  6. jquery 的 sort 函数
  7. 财务比率:ROE, 净利润增长率、毛利率、市盈率、PEG
  8. matlab的正则表达式讲解[转]
  9. ZOJ 2563 Long Dominoes(状压DP)
  10. C++:类型转换
  11. Http Request Process
  12. linux 使用ssh到远端并且使用while的坑
  13. 使用Unity创建塔防游戏(Part1)
  14. Unity黑巧克力 滚球游戏 入门级教程
  15. 多阶段构建Docker镜像
  16. (转)你应该知道的RPC原理
  17. Pytorch入门之VAE
  18. linux kernel的cmdline参数解析原理分析【转】
  19. UE4新手编程之创建空白关卡和添加碰撞体
  20. Class:Task 类

热门文章

  1. DOM--4 响应用户操作和事件(2)
  2. pycharm设置主题/默认格式/字体
  3. Codeforces 528D Fuzzy Search(FFT)
  4. myeclipse下拷贝的项目,tomcat下部署名称和导出为war包的名称默认值修改
  5. 编程思想┊从实例谈面向对象编程(OOP)、工厂模式和重构
  6. phpstorm 10 修改背景图片和字体
  7. [转]linux下svn命令大全
  8. BZOJ2002 & LCT模板(分块不会搞)
  9. ACM Registration system
  10. 【BZOJ】1108: [POI2007]天然气管道Gaz