Linux下文件查找工具介紹

文件查找工具

  • locate
  • find

    locate: 查詢系統預建的文件索引數據庫

         1. /var/lib/mlocate/mlocate.db
        2.由於依賴於事先構建的索引,而索引是系統在閒時自動進行的,管理員須要手動更新(updatedb)。
    locate的特色:查找速度快
           模糊查找
           非實時查找
           搜索的是文件的全路徑,不單單是文件名
           可能只搜索用戶具有讀取和執行權限的目錄
    基本語法:
      -i :不區分大小寫的搜索
      -n :N 只列舉前N個匹配項
      -r :使用基本正則表達式
    示例
      搜索名稱或路徑中帶有「conf」的文件
        locate conf
      使用Regex來搜索以「.conf」結尾的文件
        locate -r ‘.conf$’
    因爲locate是搜索系統索引,在通常生產環境中使用較少。node

    find 實時查找工具

    find特色:
      1.查找速度快
      2.精確查找
      3.實時查找
      4.可能只搜索用戶具有讀取和執行權限的目錄
    基本語法:
      find 【option】...【查找路徑】【查找條件】【處理動做】 正則表達式

  • 查找條件
      a.指搜索層級
      -maxdepth level 最大搜索目錄深度
      -mindepth level 最小搜索目錄深度
      b.根據文件名和inode查找:
      -name 「文件名稱」
      -iname "文件名稱":不區分大小寫字母
      -inum n :按inode號查找
      -samefile name :相同inode號的文件
      -links n :連接數爲n的文件
      c.根據屬主,屬組查找:
      -user username:查找屬主爲指定UID的文件
      -group grpname:查找屬組文指定GID的文件
      -uid userid:查找數主爲指定UID的文件
      -gid groupid:查找屬組爲指定GID的文件
      -nouser :查找沒有屬主的文件
      -nogroup :查找沒有屬組的文件
      d.根據文件類型查找
      -type type
        f:普通文件
       d: 目錄文件
       l:符號連接文件
       s:套接字文件
       b:塊設備文件
       c:字符設備文件
       p:管道文件
       -empty :查找空文件和目錄
      e.組合條件
       與 : -a
       或 : -o
       非 : -not !
      f.根據文件大小來查找文件
       -size 【+|-】
      g.根據時間查找
    Linux下文件查找工具介紹
      h.根據權限查找
       -perm [/|-]MODE
       MODE:精確權限匹配
       /MODE:任何一類(u,g,o)對象中只要有一位匹配便可 或關係
       -MODE:每一位對象都必須同時匹配 與關係

    處理動做

      -print :默認的處理動做,屏幕打印輸出
      -ls : 列舉出匹配的文件
      -delete :刪除操做,刪除過程不提示比較危險
      -fls file :查找到的文件保存到文件中,相似於重定向
      -exec command {} \;:對查找到的文件執行command 指定的命令 ,對於使用這種命令必定要記得後面加 \;
      {} :用於引用查找到文件的文件名稱自身 數據庫

    參數替換xargs

    因爲不少命令不支持管道|來傳遞參數,xatgs用於產生某個命令的參數。
    固然也有不少命令不能接受過多的參數,命令執行可能會失敗,xargs均可以解決
    例子:
       ls | xargs rm :刪除當前目錄下大量的文件
      echo f{1..52222220} | xargs touch :建立大量的文件
      find -type f -name 「*.txt」 -print0 | xargs -0 rm 以字符nul分隔 ide

相關文章
相關標籤/搜索