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 是使用数据库来搜索数据,所以相当快,而且并没有实际搜索硬盘,比较省时。

  • 相关阅读:
    POJ 2018 二分
    873. Length of Longest Fibonacci Subsequence
    847. Shortest Path Visiting All Nodes
    838. Push Dominoes
    813. Largest Sum of Averages
    801. Minimum Swaps To Make Sequences Increasing
    790. Domino and Tromino Tiling
    764. Largest Plus Sign
    Weekly Contest 128
    746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/rock-cc/p/14185871.html
Copyright © 2011-2022 走看看