zoukankan      html  css  js  c++  java
  • 22linux查询文件命令比较

    1.简介

    ​ linux 中我们经常用来查找文件的命令有 whereis、find 和 locate。

    2. whereis:定位文件所在的目录

    (1)使用 whereis 命令可以定位常用命令的位置

    [root@bat3963 ~]# whereis sh
    sh: /bin/sh /usr/share/man/man1/sh.1.gz /usr/share/man/man1p/sh.1p.gz
    

    (2)whereis 命令不是通过查找磁盘上的所有文件来实现定位,而是根据环境变量 PATH 来查找文件的。而 PATH 通常设置成存放命令的那些路径,如 /bin、/usr/bin 等,因此 whereis 的用途仅限于定位 shell 命令所在的位置

    #随便查找一个so文件,whereis一般都无法查找到
    [root@bat3963 ~]# whereis libs_liblogpublic.so
    libs_liblogpublic:
    
    3. find :查找文件

    (1)find 命令可以用来从指定的目录开始查找文件,它的速度虽然比不上 whereis 命令,但没有任何限制

    [root@bat3963 ~]# find / -name libs_liblogpublic.so
    /home/o4ufc/fbase/workspace/lib/libs_liblogpublic.so
    /home/o4ufc/appcom_all/libs_liblogpublic.so
    /home/o4ufc/lib/libs_liblogpublic.so
    /home/o4ufc/workspace/libs20201019/home/fbase/workspace/lib/libs_liblogpublic.so
    /home/o4ufc/workspace/libs20201019/home/fbase/workspace/lib/ufcso_bak/libs_liblogpublic.so
    /home/o4hg/appcom/libs_liblogpublic.so
    /home/o4bar/appcom/libs_liblogpublic.so
    /home/o4qs/appcom/libs_liblogpublic.so
    /home/o4qs/src/lib/libs_liblogpublic.so
    /home/oracle/scipt/base/appcom/libs_liblogpublic.so
    /home/oracle/scipt/clear/appcom/libs_liblogpublic.so
    /home/cres/appcom/libs_liblogpublic.so
    /home/cres/workspace/lib/libs_liblogpublic.so
    /home/o4ufc_build/fbase/workspace/lib/libs_liblogpublic.so
    /home/o4ufc_build/fbase/workspace/lib_old/libs_liblogpublic.so
    /home/o4jc/appcom/libs_liblogpublic.so
    /home/o4jc/workspace/libs20200924/app/o4jc/appcom/libs_liblogpublic.so
    

    (2)find 命令功能更强大(可参考《06grep与find命令详解》)

    [root@bat3963 ~]# find / -name libs_liblogpublic.so | xargs  ls -l
    -rw-r--r--. 1 root        root        41343 11月 27 15:43 /home/cres/appcom/libs_liblogpublic.so
    -rw-rw-r--. 1 cres        cres        41343 12月 14 16:14 /home/cres/workspace/lib/libs_liblogpublic.so
    -rwxr-xr-x. 1 o4bar       o4bar       23512 7月   3 2017 /home/o4bar/appcom/libs_liblogpublic.so
    -rwxr-xr-x. 1 o4hg        o4hg        23512 6月  18 2019 /home/o4hg/appcom/libs_liblogpublic.so
    -rwxr-xr-x. 1 o4jc        dba         23512 11月 29 17:11 /home/o4jc/appcom/libs_liblogpublic.so
    -rwxr-xr-x. 1 o4jc        dba         23512 9月  24 11:16 /home/o4jc/workspace/libs20200924/app/o4jc/appcom/libs_liblogpublic.so
    -rwxr-xr-x. 1 o4qs        root        23512 11月 28 04:54 /home/o4qs/appcom/libs_liblogpublic.so
    -rwxr-xr-x. 1 o4qs        dba         23512 5月  10 2017 /home/o4qs/src/lib/libs_liblogpublic.so
    -rwxr-xr-x. 1 o4ufc       dba         41343 12月 14 15:44 /home/o4ufc/appcom_all/libs_liblogpublic.so
    -rw-rw-r--. 1 o4ufc_build o4ufc_build 41343 12月 15 09:04 /home/o4ufc_build/fbase/workspace/lib/libs_liblogpublic.so
    -rw-rw-r--. 1 o4ufc_build o4ufc_build 41343 11月 18 13:52 /home/o4ufc_build/fbase/workspace/lib_old/libs_liblogpublic.so
    -rwxr-xr-x. 1 o4ufc       dba         23512 6月  23 2017 /home/o4ufc/fbase/workspace/lib/libs_liblogpublic.so
    -rwxr-xr-x. 1 o4ufc       dba         41343 11月 28 04:54 /home/o4ufc/lib/libs_liblogpublic.so
    -rwxr-xr-x. 1 o4ufc       dba         41343 10月 19 20:47 /home/o4ufc/workspace/libs20201019/home/fbase/workspace/lib/libs_liblogpublic.so
    -rwxr-xr-x. 1 o4ufc       dba         41343 11月 25 2018 /home/o4ufc/workspace/libs20201019/home/fbase/workspace/lib/ufcso_bak/libs_liblogpublic.so
    -rw-r--r--. 1 oracle      users       23512 11月 17 2016 /home/oracle/scipt/base/appcom/libs_liblogpublic.so
    -rw-r--r--. 1 oracle      users       23512 11月 25 2016 /home/oracle/scipt/clear/appcom/libs_liblogpublic.so
    
    4. locate:查找文件或目录

    (1)除 find 命令外,locate 也是在系统中查找文件的常用方法

    (2)用 locate 命令查找的文件和 find 一样没有任何限制,但执行速度比 find 要快不少,其主要原因在于 locate 不是从磁盘中实时查找文件,而是到由 updatedb 命令产生的信息库中查找相应的文件和目录,这样一来速度就快了好多。

    [root@bat3963 ~]# updatedb
    [root@bat3963 ~]# locate libs_liblogpublic.so
    /home/cres/appcom/libs_liblogpublic.so
    /home/cres/workspace/lib/libs_liblogpublic.so
    /home/cres/workspace/lib/libs_liblogpublic.so.bak
    /home/o4bar/appcom/libs_liblogpublic.so
    /home/o4hg/appcom/libs_liblogpublic.so
    /home/o4jc/appcom/libs_liblogpublic.so
    /home/o4jc/workspace/libs20200924/app/o4jc/appcom/libs_liblogpublic.so
    /home/o4qs/appcom/libs_liblogpublic.so
    /home/o4qs/src/lib/libs_liblogpublic.so
    /home/o4ufc/appcom_all/libs_liblogpublic.so
    /home/o4ufc/fbase/workspace/lib/libs_liblogpublic.so
    /home/o4ufc/lib/libs_liblogpublic.so
    /home/o4ufc/workspace/libs20201019/home/fbase/workspace/lib/libs_liblogpublic.so
    /home/o4ufc/workspace/libs20201019/home/fbase/workspace/lib/ufcso_bak/libs_liblogpublic.so
    /home/o4ufc_build/fbase/workspace/lib/libs_liblogpublic.so
    /home/o4ufc_build/fbase/workspace/lib/libs_liblogpublic.so.bak
    /home/o4ufc_build/fbase/workspace/lib_old/libs_liblogpublic.so
    /home/oracle/scipt/base/appcom/libs_liblogpublic.so
    /home/oracle/scipt/clear/appcom/libs_liblogpublic.so
    

    (3)如果 locate 找不到某个文件,而我们又确信该文件肯定存在,那一定是 updatedb 生成的信息库已经过时了。此时只需要以 root 用户登录,然后执行 updatedb 命令,重新建立整个系统所有文件和目录的资料库,虽然这个过程可能会浪费一点时间,但以后再查找文件就方便多了。

    5. 联系

    ​ 在 linux 中,也有相当优秀的搜索系统。通常,find 不常用,因为速度慢,耗费磁盘空间。通常我们先使用 whereis 或者 locate 来检查,如果找不到,采用 find 搜索。因为 whereis 与 locate 是使用数据库来搜索数据,所以相当快,而且并没有实际搜索硬盘,比较省时。

  • 相关阅读:
    分析存储过程重编译的起因以及避免
    存储过程重编译的优点、缺点、确定引发语句
    运用计划缓冲的建议
    查询计划Hash和查询Hash
    执行计划的重用
    执行计划组件、组件、老化
    执行计划的生成
    统计的基本操作语法 <第五篇>
    javascript 之 location.href、跨窗口调用函数
    git 删除远程分支和本地分支
  • 原文地址:https://www.cnblogs.com/rock-cc/p/14185871.html
Copyright © 2011-2022 走看看