1. 程式人生 > >linux—find用法詳解

linux—find用法詳解

linux 中find 常用示例解析

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]

   其實[-H] [-L] [-P] [-D debugopts] [-Olevel]這幾個選項並不常用(至少在我的日常工作中,沒    有用到過),上面的find命令的常用形式可以簡化為
   find [path…] [expression]
   find 命令的引數:
        path:find命令查詢檔案的目錄路徑  例如:.表示當前路徑,/表示根路徑
        expression:expression 可以分為–“options[-print-exec-ok…]
        -options,find命令的常用選項,
        -print,find命令將匹配的檔案輸出到標準輸出
        -exec, find命令對匹配的檔案執行該引數所給出的shell命令,相應命令形為‘command’{}\

                 例如:find ./ -size 0 -exec rm {} \; 刪除當前目錄下檔案大小為零的檔案。

        -ok,和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在 執行每一個命令之前,都會給出提示,讓使用者來確定是否執行。 
                find . -name "*.conf"  -mtime +5 -ok rm {  } \; 在當前目錄中查詢所有檔名 以.LOG結尾、更改時間在5日以上的檔案,並刪除它們,只不過在刪除之前先給出提示      
Find命令的常用選項和例項
         -name  按檔名字查詢
                 例如:find /etc -name "filename"   在目錄etc下查詢檔名為filename的檔案
         -perm  按照檔案許可權來查詢檔案
                 例如:find . -perm 755 -print 在當前目錄中查詢檔案許可權為755的檔案
         -user   按照檔案屬主來查詢檔案
                 例如:find ~ -user test -print 在$HOME目錄中查詢屬主為test的檔案
         -group  按照檔案屬主來查詢檔案
                 例如:find /etc -group jere -print 在/etc 目錄中查詢屬於jere使用者組的檔案
         -mtiem -n +n   按照檔案的的更改時間來查詢檔案,-n表示檔案更改是啊就距現在n天以內,                         +n 表示檔案的更改時間距現在n天以前。
                 例如:find / -mtime -5 -print  在系統根目錄下查詢更改時間再5日內的檔案
                       find /var/adrm -mtime +3 -print  在/var/adrm 下更改時間大於三天的文 件
         -nogroup   查詢無有效所屬組的檔案,即該檔案所屬組在/etc/groups 中不存在
                 例如:find / -nogroup -print
         -nouser     查詢無有效屬主的檔案,即在該檔案的屬主宰/etc/passwd 中不存在
                 例如:find / -nouser -print
         -newer file1 !file2    查詢更改時間比檔案file1新但是比檔案file2舊的檔案
         -type    查詢某型別的檔案,  諸如: b-塊裝置檔案   d-目錄   c-字元裝置檔案 p-管道 檔案  l-符號連結檔案  f-普通檔案
                 例如:find /etc -type d -print  在/etc目錄下的所有的目錄
                       find . !-type d -pint  在當前目錄下查詢除目錄以為的所有檔案
         -size n:   查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計
                  例如:find -size +1000000c -print  在當前目錄下查詢檔案長度大於1M的檔案
                        find /home/apache -size 100c -pint 在/home/apache/目錄下查詢檔案長度恰好是100位元組的檔案
                        find . -size +10 -print 在當前目錄中查詢檔案大小為10塊的檔案(一塊512位元組)
         -depth  在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其子目錄中查詢
                  例如:find / -name ”nginx“ -depth -print   他將首先匹配所有的檔案,然後再進入子目錄查詢
         -mount  在查詢檔案時不跨越檔案系統mount點
                  例如:find 。 -name  ”tst“ -mount -print  從當前目錄中開始查詢位於本檔案系統上的tst檔案,不跨越檔案系統
         -follow:如果find命令遇到符號連結檔案,就跟蹤至連結所指向的檔案。