zoukankan      html  css  js  c++  java
  • linux上的那些查找的命令

    由于工作的需要,少不得要在linux系统上查找各种各样的文件,关于在linux查找的命令有不少,这里小小的总结下。
    简单介绍下各个命令的用途:

    • find:实际搜索硬盘查询文件名称;
    • whereis:查看文件的位置;
    • which:查找和可执行文件的位置;
    • locate:配合数据库查找文件的位置;

    1.find命令

    这个命令通过实际搜索硬盘查询文件名称,一般最好能确定文件存在的最小范围,尽量缩小搜索的范围,因为实际搜索硬盘很花时间,尤其是硬盘很大,文件很多的时候。

    经常和grep命令一起搜索含有某个字符串的文件,例如:

    find  /dir  -name "*.sh" | grep "abc"  
    

    网上有一篇文章讲的很好,引在这里,以方便查阅:
    http://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html

    感谢这篇文章的作者wanqi。


    2.whereis命令

    whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

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

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

    同样引用一篇文章:http://codingstandards.iteye.com/blog/986891


    3.which命令

    which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

    引一篇参考文章:http://www.cnblogs.com/peida/archive/2012/11/08/2759805.html

    感谢文章的作者peida。


    4.locate命令

    locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

    也引一篇文章吧:http://www.cnblogs.com/peida/archive/2012/11/12/2765750.html

    感谢文章的作者peida。


    因此本篇文章并不算原创,只是对网上知识的整理以方便查阅。感谢所有乐于分享的各位~

  • 相关阅读:
    centos 系统时间设置
    centos6 centos7 配置开机启动服务
    centos6.9 samba配置
    vmware异常关闭后导致虚拟机无法打开问题解决办法
    try using -rpath or -rpath-link
    ZR#988
    提高十连测day3
    Atcoder ABC 141
    ZR#957
    ST表
  • 原文地址:https://www.cnblogs.com/flying-tiger/p/5947471.html
Copyright © 2011-2022 走看看