find命令

      find:實時查找工具,根據我們指定的內容或者條件在系統上進行實時查找,比locate在實際場景中用的多得多的多

     具體用法:find   查找路徑      查找條件             找到之后執行的動作

例如: find . -name “baoding.log”    -print    (按名字查找到baoding.log文件后輸出到屏幕上,也可以通配符查找) 

  

                 查找條件
         -name 可以使用通配符 比如 * ? [] [^]
        find . -name “????.log”
       -iname 文件名稱忽略大小寫
        find . -iname “baoding.log”
   
       -inum n 根據inode來查找 (基本不用)
       find . -inum 1179826
     -samefile name  查找相同inode號的文件,其實等于查找硬鏈接(基本不用)

     -links n 根據鏈接數
        find . -links 2
     -regex 使用正則表達式的方法匹配文件名
        find /etc/ -regex “.*\.sh$”

        根據屬主和屬組來查找
     -user  -group -uid -gid 
     -nouser 查找沒有屬主的文件或者目錄
     -nogroup 查找沒有屬組的文件或者目錄
     測試方法:新建一個ash用戶,然后把一個文件的屬主和屬組改成ash
              然后再刪除ash用戶
   
    根據文件類型:
        -type f 普通文件
              d 目錄
              l 鏈接文件
              s 套接字文件
              b 塊設備
              c 字符設備
              p 管道

    根據文件大小來查找
         -size + 大于多少的文件
             k M G
         -size – 小于多少的文件
             k M G
         -size   等于多少的文件
             k M G

    根據時間來查找
        -mtime +7 7天以前的  從第8天開始
        -mtime 7  當前時間往前推第7天
        -mtime -7  當前時間往前推第7天以內

     根據權限來查找(基本不用的)
        -perm 755 精確匹配有755權限的文件
        -perm -222 必須包含全部的222權限才可以
        -perm +222(CentOS 6)
              /222(CentOS 7)
              只要有一個比如說屬主 屬組或者其他人有一個擁有寫權限即可

        組合條件:
與:-a
或:-o
非:-not, !

    不是p 或者 不是Q == 不是(P和Q)
    不是P 并且 不是Q == 不是 (P或者Q)

    同時兩個條件 find . -user nanjing -type f

     find -not -user joe -o -not -user jane
     find . -user nanjing -o -group  1012
     find . -user nanjing -type f

  使用最頻繁的是 
           -name 通配符
           -type f普通文件
                 d目錄

    

 處理動作  -print  打印到屏幕上
           -ls    打印到屏幕上 類似于ls -l
           -delete 刪除操作 只刪除文件,不能刪除非空目錄
           -fls file 查找到的文件信息保存到指定的文本中
           -ok 在執行后面的動作之前會提示你是否需要執行(交互式的)
           -exec CMD  {} \;  執行后面的命令  {} 表示前面find出的結果  \; 固定用法

find 出來之后 -exec ls (一百萬個文件) 刪不了的
 
 xargs 將前面的find的查找結果分批次給后面的命令作為執行的參數,比如
   find / -name “*” | xargs ls 

 避免前面的find查找文件過多造成后面的命令不能執行這種情況

參數過多 
示例:執行刪除操作
         find /tmp/hebei/  -name “*.log”  | xargs rm -rf
       刪除前先執行查看操作:
          find /tmp/hebei/  -name “*.log”  | xargs ls -l
      

    
    find /tmp/ \( -not -user root -a -not -name “f*” \) 
       多個條件要使用\(\)  不能使用“” 

    find /etc/ -path ‘/etc/sane.d’ -a -prune -o -name “*.conf” -print
                                &&   真   ||

    查找/etc/下面所有的目錄
    當查找到/etc/sane.d的時候  前面的條件為真(’/etc/sane.d’ -a -prune)  
                               或后面的條件就不會執行(-name “*.conf”)
    當查找到其他目錄的時候   前面的條件為假 (’/etc/sane.d’ -a -prune)
                             或后面的會執行 (-name “*.conf”)
 
   a && b || c
    a 和b 都為真的時候 則 a && b 為真,然后后面c就不會執行    
    a 或者b 有一個為假,則 a && b 為假,然后后面的c就會執行

    查找目錄是 /etc/
          要求排除 /etc/sane.d
          查找*.conf 文件

      
       find  -name  “*.conf”  -exec  cp {}  {}.orig  \;
       備份配置文件,添加.orig這個擴展名
      find /tmp -ctime +3 -user joe -ok rm {} \;
      提示刪除存在時間超過3天以上的joe的臨時文件
      find ~ -perm -002  -exec chmod o-w {} \;
     在你的主目錄中尋找可被其它用戶寫入的文件
     ind /data –type  f -perm 644  -name “*.sh” –exec chmod 755 {} \;
     find  /home –type d -ls

    生產使用方式:
   1  刪除  find /logs/  -name “*.log” -mtime +7 | xargs rm   監控告警 (磁盤告警)
          find /logs/  -name “*.log” -size +20G | xargs rm  應用日志
   2 備份  find /apps/data/ -name “*” -exec cp {}  /backup/  \;
   3 查找 find /apps/ -name “*.log” | xargs grep -i “error”  日志里面找錯誤
  

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

(0)
fsyfsy
上一篇 2017-04-10
下一篇 2017-04-10

相關推薦

  • AIX下NFS共享導致命令行輸入卡住

     1、事件描述:之前公司測試某廠商存儲一體機的NFS共享功能,將該NFS目錄共享給AIX主機使用(用于備份對應對應的數據庫,因為數據庫版本太老,Oracle8i的,不支持存儲廠商的備份代理),測試完成后,廠商將設備直接關機(這時候在AIX上掛載的NFS目錄沒有進行卸載)。然后,當我們登陸到AIX服務器上的時候,發現每次敲入“df -g”或者“ls”…

    Linux干貨 2016-07-07
  • Linux Cluster講解

    什么是集群     集群是一組的、通過高速的計算機,它們構成了一個組,并以單一系統的模式加以管理。一個客戶與集群相互作用時,集群像是一個獨立的服務器。集群配置是用于提高可用性和可縮放性。     和傳統的高性能計算機技術相比,集群技術可以利用各檔次的服務器作為節點,系統…

    Linux干貨 2016-11-07
  • N26-第二周作業-邢巖(1)

     馬哥門徒-N26-邢巖   度過了一個愉快的春節,又到了上班的時候了!我的Linux基礎學習也進行到了瘋狂記命令的階段,痛并快樂著!那就讓我來說一下Linux上的文件管理類命令都有哪些吧。   Linux的文件相關命令還是蠻多的,我不妨簡單的總結一下,歸結為6類常用的命令: 1、目錄切換類命令   pwd命令:顯示工…

    Linux干貨 2017-02-10
  • X-Y Problem

    X-Y Problem 對于X-Y Problem的意思如下: 1)有人想解決問題X2)他覺得Y可能是解決X問題的方法3)但是他不知道Y應該怎么做4)于是他去問別人Y應該怎么做? 簡而言之,沒有去問怎么解決問題X,而是去問解決方案Y應該怎么去實現和操作。于是乎: 1)熱心的人們幫助并告訴這個人Y應該怎么搞,但是大家都覺得Y這個方案有點怪異。2)在經過大量地討…

    Linux干貨 2016-08-15
  • lamp部署及編譯安裝

    lamp 資源類型: 靜態資源:原始形式與響應給客戶端的結果一致; 動態資源:原始形式通常為程序文件(為某種編程語言開發),需要運行后將生成的結果展示給客戶端;如果請求的資源不存在那么結果就會重定向至指定的文件中 客戶端技術:javascript 服務端技術:php, jsp, … CGI:Common Gateway Interfa…

    Linux干貨 2016-10-19
  • 簡單的啟動排錯

    一、出現 grub> 字樣,等待交互式輸入指令,說明MBR中Bootloader的stage1、stage1_5、stage2都正常,但丟失了/boot/grub.conf 文件,所以無法加載啟動項菜單,就無法讀取默認啟動的kernel、initrd等文件路徑。 解決辦法:無需救援模式,直接在此交互式界面指定相關文件的加載路徑。 (1) grub&gt…

    Linux干貨 2016-11-26

評論列表(1條)

  • renjin
    renjin 2017-04-12 13:01

    總結了find命令的詳細用法,內容寫的很不錯,需要注意一下排版

欧美性久久久久