Linux文件查找

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

locate命令
? 有用的選項
    -i 執行區分大小寫的搜索
    -n X 只列舉前X個匹配項目
? locate foo
    搜索名稱或路徑中帶有“ foo”的文件
? locate -r ‘\.foo$’
    使用Regex來搜索以“ .foo”結尾的文件
find
    實時查找工具,通過遍歷指定路徑完成文件查找;
    工作特點:
        查找速度略慢
        精確查找
        實時查找
        可能只搜索用戶具備讀取和執行權限的目錄
find命令
    語法:
? find [OPTION]... [查找路徑] [查找條件] [處理動作]
    查找路徑:指定具體目標路徑;默認為當前目錄
    查找條件:指定的查找標準,可以文件名、大小、類型、
    權限等標準進行;默認為找出指定路徑下的所有文件
    處理動作:對符合條件的文件做操作,默認輸出至屏幕
查找條件
根據文件名和inode查找:
    -name "文件名稱":支持使用glob
    *, ?, [], [^]
    -iname "文件名稱":不區分字母大小寫
    -inum n 按inode號查找
    -samefile name 相同inode號的文件
    -links n 鏈接數為n的文件
    -regex "PATTERN":以PATTERN匹配整個文件路徑字符串,而不僅僅是文件名稱
根據屬主、屬組查找:
    -user USERNAME:查找屬主為指定用戶(UID)的文件
    -group GRPNAME: 查找屬組為指定組(GID)的文件
    -uid UserID:查找屬主為指定的UID號的文件
    -gid GroupID:查找屬組為指定的GID號的文件
    -nouser:查找沒有屬主的文件
    -nogroup:查找沒有屬組的文件
根據文件類型查找:
    -type TYPE:
    f: 普通文件
    d: 目錄文件
    l: 符號鏈接文件
    s:套接字文件
    b: 塊設備文件
    c: 字符設備文件
    p: 管道文件
組合條件:
    與: -a
    或: -o
    非: -not, !
德·摩根定律:
    非(P 且 Q) = (非 P) 或 (非 Q)
    非(P 或 Q) = (非 P) 且 (非 Q)
    !A -a !B = !(A -o B)
    !A -o !B = !(A -a B)
根據文件大小來查找:
    -size [+|-]#UNIT
    常用單位: k, M, G
    #UNIT: (#-1, #],如: 6k
    -#UNIT: [0,#-1], 如: -6k
    +#UNIT: (#,∞), 如: +6k
根據時間戳:
以“天”為單位;
    -atime [+|-]#,
    #: [#,#+1)
    +#: [#+1,∞]
    -#: [0,#)
    -mtime
    -ctime
以“分鐘”為單位:
    -amin
    -mmin
    -cmin
根據權限查找:
    -perm [/|-]MODE
    MODE: 精確權限匹配
    /MODE:任何一類(u,g,o)對象的權限中只要能一位匹配即可,或關系, + 從centos7開始淘汰
    -MODE:每一類對象都必須同時擁有指定權限,與關系0 表示不關注
    find -perm 755 會匹配權限模式恰好是755的文件
    只要當任意人有寫權限時, find -perm +222就會匹配
    只有當每個人都有寫權限時, find -perm -222才會匹配
    只有當其它人( other)有寫權限時, find -perm -002才會匹配
處理動作
     -print:默認的處理動作,顯示至屏幕;
?   -ls:類似于對查找到的文件執行“ ls -l”命令
?   -delete:刪除查找到的文件;
?   -fls file:查找到的所有文件的長格式信息保存至指定文件中
?   -ok COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令;
        對于每個文件執行命令之前,都會交互式要求用戶確認
-exec COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令
? {}: 用于引用查找到的文件名稱自身
? find傳遞查找到的文件至后面指定的命令時,查找到所有符合條件的文件一次性傳遞給后面的命令
? 有些命令不能接受過多參數,此時命令執行可能會失敗,下面方式可規避此問題
        find | xargs COMMAND

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

(0)
RecallWzcRecallWzc
上一篇 2016-08-14 21:06
下一篇 2016-08-15 09:22

相關推薦

  • 進程管理

    進程概念 內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等 Process(進程):運行中的程序的一個副本,是被載入內存的一個指令集合 進程ID (Process ID ,PID )號碼被用來標記各個進程 UID、GID、和SELinux語境決定對文件系統的存取和訪問權限 通常從執行進程的用戶來繼承 存在生命周期 task struc…

    2017-05-09
  • 網絡這塊一些有趣的感想

    還記的那天老師讓我們做兩臺主機的nexthop就是自己的ip地址,然后互相ping測試能否互相聯通的實驗,昨晚之后我就在想能不能進行一些改進,因為在我看來這種級別的互相ping的前面一個網絡段相同太沒意思了。 接著我就嘗試了幾種IP地址 主機A 主機B 192.0.0.1 192.1.0.1 192.1.1.1 192.2.2.2 192.2.1.1 192…

    Linux干貨 2016-09-13
  • 德摩根定律

     德摩根定律: 非(P且Q) = (非P) 或 (非Q) 非(P或Q) = (非P) 且 (非Q) 德·摩根定律在數理邏輯的定理推演中,在計算機的邏輯設計中以及數學的集合運算中都起著重要的作用。他的發現影響了喬治·布爾從事的邏輯問題代數解法的研究。這鞏固了德摩根作為該規律的發現者的地位,盡管亞里士多德也曾注意到類似現象,且這也為古希臘與中世紀的邏輯…

    Linux干貨 2016-08-15
  • N25_第二周作業

    前言 我們這次使用HAProxy作為負載均衡調度器來實現后端httpd服務的負載均衡和動靜分離,實現將來自用戶的80端口的http請求轉發只后端8080端口的server服務 HAProxy介紹 HAProxy的是一個免費的,非??焖俸涂煽康慕鉀Q方案,提供高可用性,負載均衡和代理對TCP和HTTP的應用程序。它特別適用于非常高流量網站。多年來,它已成為標準的…

    Linux干貨 2016-12-12
  • ?卸載kernel玩一玩

    卸載kernel玩一玩 廢話不多說,下面開始卸載內核這一驚險之旅,特別提醒在開始之前做好虛擬機的快照,也許會造成系統無法啟動,也許會出現各種錯誤,也許會笑著刪數據庫跑路,也許會從入門到放棄,,請系好安全帶。  練習 冒泡排序法 #!/bin/bash##Author:jasonmc#Date:2016-08-24#Description:buble…

    Linux干貨 2016-08-26
  • 夢想走向現實的地方

    曾經羨慕打字快的同學指尖能在鍵盤上優雅地跳舞,于是我有努力練習打字。 曾經羨慕同事能很神奇地把一個交換機的端口關閉,讓那端口下面的人都不能上網,于是我努力學習交換機、路由。 現在我羨慕一個人能管很多服務器的人,于是我開始學習linux了。 努力成為一個也能管很多服務器的人,因為我也想別人叫我運維工程師

    Linux干貨 2016-10-25
欧美性久久久久