• linux 查找


    linux下的查找命令有很多,常用的有which、whereis、locate、find。平时在网上搜索一些教程的时候,经常会有让使用这四条命令中的一条去查找一些东西,但是经常这次说用which,下次说用whereis,既然都是查找,为什么要用到这么多种命令?实在是很让人发晕啊。所以今天特意写一篇文章来分析下这三者的特点和区别。
        
    1、which
        这条命令主要是用来查找系统PATH目录下的可执行文件。说白了就是查找那些我们已经安装好的可以直接执行的命令。比如:
        which ls
        alias ls='ls --color=auto'
         /bin/ls
        其中的alias代表的是命令别名。这里需要说明的是which是可以分辨出命令的别名的,你也可以通过which 命令别名查找到命令的位置。这点下面要介绍的命令是做不到的。
    2、whereis
        这个命令可以用来查找二进制(命令)、源文件、man文件。与which不同的是这条命令可以是通过文件索引数据库而非PATH来查找的,所以查找的面比which要广。例如:
        [root@MR pip-1.5.4]# whereis ls
        ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
        可以看到whereis还找到了ls命令的相关man文件。这条命令一般情况下只找的出命令相关的文件,并不能找出任意指定的文件。
    3、locate
        这个命令也是通过数据库查找文件,但是这个命令的适用范围就比whereis大多了。这个命令可以找到任意你指定要找的文件,并且可以只输入部分文件名(前面两个命令是要输入完整文件名的)。同时locte还可以通过-r选项使用正则表达式,功能十分强大。例如:
    [root@MR pip-1.5.4]# locate ls |head -n 5
    /wlsvhtest-tap0
    /wlsvhtest-wlan1
    /bin/alsaunmute
    /bin/false
    /bin/ls

        这里只显示了前五条,但是实际上locate输出的内容是非常多的。

        需要注意的是locate使用的索引数据库里的信息并不一定是实时有效的,可以使用updatedb命令更新索引数据库。
    4、find
        find命令要比前边几条复杂的多,功能也强大的多。这条命令是通过直接搜索硬盘的方式查找的,所以可以保证查找的信息绝对可靠。并且支持各种查找条件。但是功能强大肯定是有代价的,那就是搜索速度慢。所以一般前边几种找不出来的情况下才会使用find。另外如果要实现某些特殊条件的查找,比如找出某个用户的size最大的文件,那就只能用find了。
     
        总结:
        which主要用来查找可直接执行的命令,可以查找别名。whereis比which的搜索范围大了一些,同时可以查找源文件和man文件。这两个命令适用于查找安装好的命令。
        locate的查找范围更大,可以查找任意类型文件。适合快速查找指定文件。
        find最强大也最慢。适合查找前几个命令找不到的文件

    --------------------- 本文来自 wayne_l123 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/l1902090/article/details/24887997?utm_source=copy 

  • 相关阅读:
    20175326 《Java程序设计》第七周学习总结
    20175326 《Java程序设计》第六周学习总结
    2018-2019-20175326实验一《Java开发环境的熟悉》实验报告
    20175326 《Java程序设计》第五周学习总结
    20175326 《Java程序设计》第四周学习总结
    20175326 《Java程序设计》第三周学习总结
    # 20175326 《Java程序设计》第二周学习总结
    20175326 《Java程序设计》第一周学习总结
    20175325 《JAVA程序设计》实验四《Android程序设计》实验报告
    《JAVA程序设计》第十一周学习总结
  • 原文地址:https://www.cnblogs.com/cjjjj/p/9755925.html
Copyright © 2020-2023  润新知