Linux文件查找

文件查找
    locate,find

    在文件系統(tǒng)上查找符合條件的文件统抬;

          實現(xiàn)工具:locate勘究,find

  locate:
      依賴于實現(xiàn)構建好的索引庫悯衬;
            系統(tǒng)自動實現(xiàn)【定時任務】;
            手動更新數(shù)據(jù)庫(updatedb);
      工作特性:
          查找速度快形庭;
          模糊查找;
          非實時查找。

    使用yum安裝locate : yum install mlocate
    locate [OPTION]... PATTERN...
      -b 僅僅匹配基名
      -c count 統(tǒng)計出符合條件的個數(shù)
      -r BRE基于基本正則表達式

    注意:索引構建過程挪捕,即updatedb需要遍歷整個根文件系統(tǒng),機器消耗資源

  find:
      實時查找工具争便,通過便利指定其實路徑下的文件系統(tǒng)層級結構完成文件查找级零;

      工作特性:
          查找速度略慢;
          精確查找;
          實時查找奏纪。

       用法:
            find [OPTIONS] [查找起始路徑] [查找條件] [處理動作]

              查找起始路徑:指定具體搜索目標起始路徑鉴嗤,默認為當前目錄;
              查找條件:指定的查找標準序调,可以根據(jù)文件名醉锅、大小、類型发绢、從屬關系硬耍、權限等標準進行,默認為找出指定路徑下的所有文件边酒。
              處理動作:對符合查找條件的文件做出的操作经柴,例如刪除等操作,默認為輸出至標準輸出墩朦”优洌可以使用ls等命令。

  查找條件:
    表達式:選項和測試組成

       測試:【結果通常為布爾型(false唬格,true)】
             根據(jù)文件名查找:
                    -name "pattern"
                    -iname "pattern" 不區(qū)分大小寫
                          支持glob風格的通配符 *,?,[],[^]
                    -regex pattern 基于正則表達式模式查找文件龙誊,匹配的是整個路徑,而不是文件名【沒弄明白春哨,一般不用】

             根據(jù)文件的從屬關系查找
                -user username
                -group groupname

                -uid uid 查找屬主指定的UID的所有文件
                -gid GID 查找屬組指定的GID的所有文件

                 -nouser  查找沒有屬主的文件
                -nogroup  查找沒有屬組的文件
        沒有屬主和屬組的文件是很危險的荆隘,需要定期查找系統(tǒng)中沒有屬主和屬組的文件。

根據(jù)文件的類型查找:
      -type TYPE:
        f:普通文件
       d:目錄文件
        l:符號鏈接文件
       b:塊設備文件
       c:字符設備文件
       p:管道文件
       s:套接字文件

 組合測試:
      與:-a 默認是與組合邏輯赴背,兩個條件都滿足才輸出
      或:-o 如果一個條件符合椰拒,則輸出 shi
      非:-not或者-! 
        例如:find /tmp -not -user "juha" -ls 顯示tmp目錄下屬主不是juha的所有文件

          !A -a !B = !(A -o B)
          !A -o !B = !(A -a B)

  注意,使用組合時凰荚,如需使用括號燃观,則需使用轉義符即\( 和\)

  根據(jù)文件的大小查找:
        -size [+|-] #unit
            常用單位:k,M,G

              #unit:(#-1,#] 大于這個值減一,但是小于等于這個值
              -#unit:[0,#-1] 小于等于這個值減一
              +#unit:(#,∞) 大于這個值

  根據(jù)時間戳查找:
            a access,c change,m modify
            以天為單位:
                -atime [+|-]#
                      #:[#,#-1]過去#天一天之內
                      -#:(#,0] 距離現(xiàn)在#天之內
                      +#(-∞,#-1] #天之前
                -mtime 
                -ctime
            以分鐘為單位
                -amin
                -mtime
                -ctime 

    根據(jù)權限查找:
          -perm [/|-] mode
              mode: 精確權限匹配 例如777
              / mode:任何一類用用戶(u,g,0)的任何一位(rwx)符合條件即滿足  便瑟,9位權限或關系
                例如 find /tmp /111 代表查找至少一個組有執(zhí)行權限的缆毁,find /tmp /001查找其他組中有執(zhí)行權限的文件
              -mode:每一類用戶(u,g到涂,o)中的每一個位同時符合條件即可脊框,9位權限是與關系
                例如,find /tmp -111 代表查找三類組都應該有執(zhí)行權限践啄,find /tmp -011查找其他組且屬組中中有執(zhí)行權限的文件


  處理 動作(對最后一個輸出的結果生效浇雹,如果是或,注意使用括號):
      -print:輸出至標準輸出屿讽,默認的動作昭灵;
      -ls:類似于對查找到的文件執(zhí)行l(wèi)s -l命令,輸出文件的詳細信息;
      -delete 刪除查找到的文件
      -fls /path/to/file 把查找到的所有文件的長格式信息保存至指定文件中烂完。危險试疙,不建議做。
      -ok COMMAND {} \; 對查找到的每個文件執(zhí)行COMMAND命令操作窜护,{}的作用是引用查找到的文件名 的效斑,但是改了多少個文件就要手動確認多少次。  
          例如:find ./ -nogroup -ok chown root:root {}\; 表示對查找到的沒有屬組的文件執(zhí)行改變屬主和屬組為root柱徙。
      -exec COMMAND {}\;對查找到的每個文件執(zhí)行COMMAND命令操作缓屠,無需確認操作。
          例如:find ./ -perm /002 -exec mv {} {}.danger \;表示把當前目錄下的其他組有寫權限的文件更名為原文件名后加.danger护侮。

    注意:find傳遞查找 的 文件路徑至后面的命令時敌完,是先查找出所有符合條件的文件路徑,并一次性傳遞給后面的命令羊初;但是有些命令不能接受過長的參數(shù)滨溉,此時命令執(zhí)行會失敗,可通過另一種方式避免此問題:
          find | xargs COMMAND
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末长赞,一起剝皮案震驚了整個濱河市晦攒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌得哆,老刑警劉巖脯颜,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異贩据,居然都是意外死亡栋操,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門饱亮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來矾芙,“玉大人,你說我怎么就攤上這事近上√尴埽” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵壹无,是天一觀的道長葱绒。 經(jīng)常有香客問我,道長格遭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任留瞳,我火速辦了婚禮拒迅,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己璧微,他們只是感情好作箍,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著前硫,像睡著了一般胞得。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屹电,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天阶剑,我揣著相機與錄音,去河邊找鬼危号。 笑死牧愁,一個胖子當著我的面吹牛,可吹牛的內容都是我干的外莲。 我是一名探鬼主播猪半,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼偷线!你這毒婦竟也來了磨确?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤声邦,失蹤者是張志新(化名)和其女友劉穎乏奥,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翔忽,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡英融,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了驶悟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡材失,死狀恐怖痕鳍,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情龙巨,我是刑警寧澤笼呆,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站旨别,受9級特大地震影響诗赌,放射性物質發(fā)生泄漏。R本人自食惡果不足惜秸弛,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一铭若、第九天 我趴在偏房一處隱蔽的房頂上張望洪碳。 院中可真熱鬧,春花似錦叼屠、人聲如沸瞳腌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嫂侍。三九已至,卻和暖如春荚坞,著一層夾襖步出監(jiān)牢的瞬間挑宠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工西剥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留痹栖,地道東北人。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓瞭空,卻偏偏與公主長得像揪阿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子咆畏,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354