zoukankan      html  css  js  c++  java
  • Linux下which、whereis、locate、find命令的区别

    一、简介

      which       查看可执行文件的位置 

      whereis    配合数据库查看文件的位置​

      locate       配合数据库查看文件位置

      find          实际搜寻硬盘查询文件名称 (find也可以根据文件大小-size 时间-atime 正则表达式-regex)

    二、which

    语法: 

      [root @redhat~]# which 可执行文件名称

      例如:  [root @redhat~]# which passwd 

           /usr/bin/passwd 

      which是通过 PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件

    三、whereis

    语法: 

       [root @redhat~]# whereis [-bmsu] 文件或者目录名称

      参数说 明:  -b   定位可执行文件。

                           -m   定位帮助文件。

                           -s   定位源代码文件。

                           -u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

      和find相比,whereis查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个数据库文件​中,当使用whereis和locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高

      但是,该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。  ​

    四、locate

      我个人感觉locate和whereis差不多,locate比较适合与数据库一起配合着用,locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以手动更新updatedb来更准确的运行locate命令。

    五、find

    语法: 

      [root@redhat ~]# 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的文件(可以使用通配符) 

      当我们用whereis和locate无法查找到我们需要的文件时,可以使用find,但是find是在硬盘上遍历查找,因此非常消耗硬盘的资源,而且效率也非常低,因此建议大家优先使用whereis和locate。

      locate 是在数据库里查找,数据库大至每天更新一次。  

      whereis 可以找到可执行命令和man page  find 就是根据条件查找文件。 

      which 可以找到可执行文件和别名(alias) 。

    总结:

      find,遍历硬盘查找,通常使用 find / -name Filename。耗内存。locate和whereis是根据数据库查找,无法实时查找文件。有可能找到刚才删除的文件和无法找到新增的文件。which根据path找可执行文件。whereis 可以用来找相关安装路径和二进制文件,可执行文件

    六、参考文章

    https://blog.csdn.net/cjf1002361126/article/details/77529992

    本文来自博客园,作者:Mr-xxx,转载请注明原文链接:https://www.cnblogs.com/MrLiuZF/p/15196373.html

  • 相关阅读:
    【POJ 3162】 Walking Race (树形DP-求树上最长路径问题,+单调队列)
    【POJ 2152】 Fire (树形DP)
    【POJ 1741】 Tree (树的点分治)
    【POJ 2486】 Apple Tree (树形DP)
    【HDU 3810】 Magina (01背包,优先队列优化,并查集)
    【SGU 390】Tickets (数位DP)
    【SPOJ 2319】 BIGSEQ
    【SPOJ 1182】 SORTBIT
    【HDU 5456】 Matches Puzzle Game (数位DP)
    【HDU 3652】 B-number (数位DP)
  • 原文地址:https://www.cnblogs.com/MrLiuZF/p/15196373.html
Copyright © 2011-2022 走看看