Linux文件查找的使用方法

文件查找的方法

locate命令

      非實時查找(數據庫查找): locate查詢系統上預建的文件索引數據庫 /var/lib/mlocate/mlocate.db
    依賴于事先構建的索引;索引的構建是在系統較為空閑時自動進行(周期性任務);管理員手動更新數據庫(updatedb);
    索引構建過程需要遍歷整個根文件系統,極消耗資源;
    工作特點:
               查找速度快;
            模糊查找
            非實時查找
            搜索的是文件的全路徑,不僅僅是文件名
            可能只搜索用戶具備讀取和執行權限的目錄

v   常用選項

            -i  忽略大小寫

            -n  只搜索符合條件的前幾個

                例如:locate “test” -n 3

                     只搜符合“test”條件的前三個                                                                                                                                                                                                                                                                                          

             -r  使用正則表達式來搜

                例如:locate -r “^.*\.sh”

                     搜索以.sh結尾的文件

            -b  匹配基名

         -c  顯示總共搜到了符合條件的數量

            

find命令實時查找工具,通過遍歷指定路徑完成文件查找;

     工作特點:
              查找速度略慢
           精確查找
           實時查找
           可能只搜索用戶具備讀取和執行權限的目錄
find
       語法:find [OPTION]… [查找路徑] [查找條件] [處理動作]
       查找路徑:指定具體目標路徑;默認為當前目錄
       查找條件:指定的查找標準,可以文件名、大小、類型、
       權限等標準進行;默認為找出指定路徑下的所有文件
       處理動作:對符合條件的文件做操作,默認輸出至屏幕
查找條件

  根據文件名稱和inode編號查找

     -name   根據文件名稱查找,支持通配符。

   blob.png

     -iname    不區分搜索條件大小寫

blob.png 

      -inum  n  根據文件inode號查找

blob.png 

      -samefile  name   搜索相同的inode號文件

blob.png 

      -links  n    搜索鏈接數為n的文件

blob.png 

      -regex  “PATTERN” 按正則表達式搜索

blob.png 

根據屬主、屬組查找

     -user   查找屬主

blob.png 

      -group   查找屬組

blob.png 

      -uid       查找符合條件的UID號文件

blob.png 

      

-gid       查找符合條件的GID文件

blob.png 

-nouser   查找沒有屬主的文件

-nogroup  查找沒有屬組的文件

 

根據文件類型查找

-type

    f    普通文件

    d    目錄

    l    符號鏈接

    s    套接字文件

    b    塊設備

    c    字符設備

    P    管道文件

組合條件

    -a   與

    -o   或

    -not ! 非

德·摩根定律

         非(p且q)=(非p)或(非q)

         非(p或q)=(非p)且(非q)

 

根據文件大小查找

 -size  #     常用單位  K   M   G

       #    #-1<file≤#

  例如:find  -size  10k  file

      表示查找大小在9<file≤10的文件

       -#   0≤file≤#-1

  例如:find  -size  -10K  file

      表示查找大小在0≤file≤9的文件

       +#    #<∞

  例如:find  -size  +10k  file

      表示查找大于10k的文件

根據時間戳  

      以天為單位

         -atime  # 

                 #    #≤file<#+1

                +#    #+1≤file≤∞

                -#     0≤file<#

         -mtime

         -ctime

       

       以分鐘為單位

           -amin

           -cmin

           -mmin

根據權限查找

           -perm  MODE

               MONE    精確匹配權限

blob.png 

               /MONE   任何一類(u,g,o)對象的權限中只要能一位匹配即可,是或

                        的關系,“+”從centos7開始淘汰。

blob.png 

               -MONE   每一類對象都必須同時擁有指定的權限,是與的關系。

blob.png 

                 0      表示不關注。

blob.png 

上圖中,保留u g上原有的權限,只刪選符合o上有執行權限的文件。

 

處理動作

       -print       默認的處理動作  顯示至屏幕

       -ls         相當于 ls -l

       -delete     刪除查找到的文件

       -fls  file    查找到的文件的長格式信息保存至指定的文件。

                  例如:find  -name “f*” -fls  /root/find.txt

                       將查找到的以“f”開頭的文件存入/root/find.txt文件中。

                       用重定向也可以將搜索到的文件存入指定文件中

       -ok  COMMAND {} \ ; 對查找到的每個文件執行由COMMAND指定的命令。

                  例如:find  -name “f*” -ok  cp{}  {}.bak  \;

                       對查到的每個以“f”開頭的文件執行復制命令,并且以.bak為后

                       綴。

blob.png 

                    -exec  COMMAND  {}  \  ;  

     例如: find -name “ip.sh” -exec cp {}  /testdir/f1 \;  下圖劃紅線的地方未出先提示信息,

而用-ok會出現提示信息“是否復制文件”的提示信息。

blob.png 

    有些命令不能接受過多的參數,此時命令執行可能會失敗,用xargs命令可以規避此問題。

                   find  |  xargs  COMMAND

    

 

原創文章,作者:zzd,如若轉載,請注明出處:http://www.www58058.com/34727

(0)
zzdzzd
上一篇 2016-08-15
下一篇 2016-08-15

相關推薦

  • 馬哥教育網絡班N22期+第7周作業

    1、創建一個10G分區,并格式為ext4文件系統;(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;mke2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sdb1tune2fs -o acl /dev/sdb1(2) 掛載至/data/mydata目錄,要求掛載時禁止…

    Linux干貨 2016-11-14
  • 內核編譯實際效果演示

    內核編譯實際操作效果演示     環境:CentOS7.2,自帶內核版本為3.10.0-327.el7.x86_64,下載3.18.41版本進行編譯     步驟1:確保開發工具包組已安裝     [root@localhost …

    Linux干貨 2016-09-13
  • 搭建最基礎的DNS服務

    搭建一個簡單的DNS為了更方便和清晰的了解DNS的作用,通過搭建一個簡單的DNS服務來學習。 在搭建之前,先簡單了解一下DNS的工作原理 客戶端把訪問的域名傳遞給DNS服務器a,如果有記錄,則將IP傳遞給客戶端 DNS服務器a沒有記錄,則以遞歸方式訪問其他服務器。首先訪問根域 根域將匹配的一級域名DNS服務器b地址傳遞給DNS服務器a DNS服務器a再去訪問…

    Linux干貨 2017-07-26
  • mysql 備份腳本的編寫

        最近在為做一些邊邊角角的工作,現在有一個需求要每天把mysql的數據庫dump出來到備份機器上面去. 看似簡單的任務也潛在了很多的需求,整理如下:     自動運行-crontab      腳本的環境變量設置-由于通過crontab 啟動執…

    Linux干貨 2015-12-15
  • Linux系統用戶、組

    1、資源分派:          Authentication  認證        Authorization   授權     &nbs…

    Linux干貨 2016-08-04
  • 馬哥教育網絡班21期+第7周課程練習

    1、創建一個10G分區,并格式為ext4文件系統;     fdisk /dev/sdb    n p 1 +10G w (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl…

    Linux干貨 2016-08-22

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-19 10:46

    對find命令的常見選項總結的很詳細,同時,find的處理動作也是很重要的哦,這也是需要我們多加練習的。

欧美性久久久久