linux學習-find命令__linux

來源:互聯網
上載者:User
                                                linux學習-find命令

用於在檔案樹中尋找檔案,並作出相應的處理


命令格式:

find pathname -options [-print -exec -ok ...]


命令參數:

        pathname: find命令所尋找的目錄路徑。例如用.來表示目前的目錄,用/來表示系統根目錄。

        -print: find命令將匹配的檔案輸出到標準輸出。

        -exec: find命令對匹配的檔案執行該參數所給出的shell命令。相應命令的形為'command' {  } \;,注意{   }和\;之間的空格。

        -ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓使用者來確定是否執行。


命令選項:

         -name 按照檔案名稱尋找檔案

         -perm 按檔案許可權尋找檔案

         -user 按檔案屬主尋找檔案

         -group  按照檔案所屬的組來尋找檔案。

         -type  尋找某一類型的檔案,諸如:

                   b - 塊裝置檔案

                   d - 目錄

                   c - 字元裝置檔案

                   l - 符號連結檔案

                   p - 管道檔案

                   f - 普通檔案

         -size n :[c] 尋找檔案長度為n塊檔案,帶有c時表檔案位元組大小

         -amin n   尋找系統中最後N分鐘訪問的檔案

         -atime n  尋找系統中最後n*24小時訪問的檔案

         -cmin n   尋找系統中最後N分鐘被改變檔案狀態的檔案

         -ctime n  尋找系統中最後n*24小時被改變檔案狀態的檔案

         -mmin n   尋找系統中最後N分鐘被改變檔案資料的檔案

         -mtime n  尋找系統中最後n*24小時被改變檔案資料的檔案

         (用減號-來限定更改時間在距今n日以內的檔案,而用加號+來限定更改時間在距今n日以前的檔案。 )

         -maxdepth n 最大尋找目錄深度

         -prune選項來指出需要忽略的目錄。在使用-prune選項時要當心,因為如果你同時使用了-depth選項,那麼-prune選項就會被find命令忽略

         -newer 如果希望尋找更改時間比某個檔案新但比另一個檔案舊的所有檔案,可以使用-newer選項。


執行個體:

(1)尋找48小時內修改過的檔案

find -atime -2


(2)在目前的目錄尋找 以.log結尾的檔案。 ". "代表目前的目錄

find ./ -name '*.log'


(3)尋找/opt目錄下 許可權為 777的檔案

find /opt -perm 777


(4)尋找大於1K的檔案     

find -size +1000c

 

 find -size 1000c  尋找等於1000字元的檔案

-exec   參數後面跟的是command命令,它的終止是以;為結束標誌的,所以這句命令後面的分號是不可缺少的,考慮到各個系統中分號會有不同的意義,所以前面加反斜線。{}   花括弧代表前面find尋找出來的檔案名稱。

(5)在目前的目錄中尋找更改時間在10日以前的檔案並刪除它們(無提醒)

find . -type f -mtime +10 -exec rm -f {} \;


(6)目前的目錄中尋找所有檔案名稱以.log結尾、更改時間在5日以上的檔案,並刪除它們,只不過在刪除之前先給出提示。 按y鍵刪除檔案,按n鍵不刪除

find . -name '*.log' mtime +5 -ok -exec rm {} \;


(7)目前的目錄下尋找檔案名稱以passwd開頭,內容包含"pkg"字元的檔案  

find . -f -name 'passwd*' -exec grep "pkg" {} \;


(8)用exec選項執行cp命令 

find . -name '*.log' -exec cp {} test3 \;

 -xargs find命令把匹配到的檔案傳遞給xargs命令,而xargs命令每次只擷取一部分檔案而不是全部,不像-exec選項那樣。這樣它可以先處理最先擷取的一部分檔案,然後是下一批,並如此繼續下去。

執行個體:

(9)尋找目前的目錄下每個普通檔案,然後使用xargs來判斷檔案類型


find . -type f -print | xargs file


(10)尋找目前的目錄下所有以js結尾的並且其中包含'editor'字元的普通檔案

find . -type f -name "*.js" -exec grep -lF 'ueditor' {} \;
find -type f -name '*.js' | xargs grep -lF 'editor'


(11)利用xargs執行mv命令  

find . -name "*.log" | xargs -i mv {} test4


(12)用grep命令在目前的目錄下的所有普通檔案中搜尋hostnames這個詞,並標出所在行

find . -name \*(轉義) -type f -print | xargs grep -n 'hostnames'


(13)尋找目前的目錄中以一個小寫字母開頭,最後是4到9加上.log結束的檔案

find . -name '[a-z]*[4-9].log' -print


(14)在test目錄尋找不在test4子目錄尋找  

find test -path 'test/test4' -prune -o -print


(15)執行個體1:尋找更改時間比檔案log2012.log新但比檔案log2017.log舊的檔案 

find -newer log2012.log ! -newer log2017.log


使用depth選項:

         depth選項可以使find命令向磁帶上備份檔案系統時,希望首先備份所有的檔案,其次再備份子目錄中的檔案。 

  &nb

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.