1. 程式人生 > >文件查找命令使用

文件查找命令使用

term 根據 user comm share 工具 ado cron 表示

  • 文件查找工具:locate、find
  • locate使用
  • find使用

  • 為了高效提升效率,文件系統中的文件眾多,Linux系統一切皆文件的思想,不免有時候忘記某個文件位於哪個文件夾,或具體叫什麽名字等,使用ls/cd 等工具一個一個查找比較低效無用,對於內容查找可以使用‘三劍客‘。

    • locate使用
      依賴事先存在的索引庫,數據並非實時更新,需要手動update或者cron任務實現周期更新;
      特點:
      查找速度快、模糊查找、非實時查找
      用法:
      locate [options] pattern..
      -b : 只匹配路徑的基名
      -c : 統計出共有多少個符合的
      -r : 正則表達式匹配
    • find使用
      實時查找,通過遍歷整個跟文件系統查找,比較消耗資源

      特點:查找速度略慢、精確查找、實時查找
      用法:
      find [options] [查找起始路徑] [查找條件] [處理動作]
      查找路徑:默認當前路徑,指定精確的範圍能夠提高效率
      查找條件:指定查找的標準,文件名、大小、文件類型、從屬關系、時間、權限
      處理動作:默認為標準輸出至屏幕,可以對查找符合條件的文件做處理,如刪除、執行某命令。
      查找條件:[選項[測試條件]]

      • 測試條件:布爾型結果true 、false
        組合測試:
        -a: 與關系,如何多個條件不加測試,默認為與關系
        -o: 或關系
        -not | !: 非關系

      • 根據文件名查找
        -name “pattern”
        -iname "pattern" :不區分大小寫

        -regex "pattern":基於正則表達式查找,匹配是整個路徑,而非其名
        支持glob通配符:*、?、[]、[^]...
        如查找/usr/share/中.jpg結尾文件:
        技術分享圖片

      • 根據從屬關系查找
        -user username:指定用戶文件的屬主查找
        -group groupname:指定文件的屬組查找
        -uid UID :指定文件的uid查找
        -gid GID :指定文件的gid查找
        -nouser :查找沒有屬主的文件
        -nogroup :查找沒有屬組的文件

      • 根據文件類型查找
        -type TYPE
        f: 普通文件
        d: 目錄文件
        l:符號鏈接文件
        b:塊設備 文件
        c:字符設備文件
        p:管道文件
        s:套接字文
      • 根據文件大小查找
        -size [+|-] #單位 :單位常用K,M,G
        #3K:表示精確大小查找,(#-1,#]數學範圍表示
        +3K:表示大於3K的文件,(#,0-0)
        -3K:表示小於3K的文件,(0,#)

      • 根據文件時間戳查找,即stat的三個時間戳
        以天為單位:類型 [+|-] #
        -atime :訪問時間
        -mtime :修改時間
        -ctime :改變時間
        以分鐘為單位:
        -amin
        -mmin
        -cmin
        以數軸為例區分【+|-】#
        技術分享圖片

      • 根據文件權限查找
        -perm [/|-]mode
        mode:精確權限查找
        /mode:任何一類用戶(u,g,o)的權限中的任何一位(r,w,x)符合條件即滿足;9位權限之間存在“或”關系;
        -mode:每一類用戶(u,g,o)的權限中的每一位(r,w,x)同時符合條件即滿足; 9位權限之間存在“與”關系;

      • 處理動作:
        -print:標準輸出;默認動作;
        -ls:類似於對查找到的文件執行“ls -l”命令,輸出文件的詳細信息;
        -delete:刪除查找到的文件;
        -fls /PATH/TO/SOMEFILE:把查找到的所有文件的長格式信息保存至指定文件中;
        -ok COMMAND ‘{}’ \; :對查找到的每個文件執行由COMMAND表示的命令;每次操作都由用戶進行確認;
        -exec COMMAND {} \; :對查找到的每個文件執行由COMMAND表示的命令;
        註意:find傳遞查找到的文件路徑至後面的命令時,是先查找出所有符合條件的文件路徑,並一次性傳遞給後面的命令; 但是有些命令不能接受過長的參數,此時命令執行會失敗;
        可以使用:find | xargs COMMAND
        如:找到/usr/share/下圖片並復制到/tmp下
        技術分享圖片
    • 以上只是查找文件,如何根據內容查找:如查找grub.d/下中文件包含有GRUB2_PASSWORD
      技術分享圖片
      -r:表示遞歸查找
      -n:顯示行號
      詳細用法查看grep.

    文件查找命令使用