天天看點

find指令使用

注意:grep、egrep、fgrep指令都文本查找,是查找檔案裡的内容。

檔案查找用locate指令、find指令。

1、locate指令

 是全系統内進行查找,是根據資料庫進行的。這個資料庫是系統每天晚上自動建立的。

特點:

非實時,模糊比對,查找是根據全系統檔案資料庫進行,速度快。

目前對檔案的操作,不會在資料庫中,是以有些檔案用locate搜尋不到,但是可用指令手動更新資料庫後,再用locate指令查找即可實作實時查找。

updatedb指令:手動更新資料庫。

2、find指令:

實時查找,精确,支援衆多查找标準,通過周遊制定中的目錄的所有檔案完成查找,速度較慢。

find指令格式:

find 查找路徑 查找标準 查找到以後的處理動作

(1)查找路徑:可省了,預設為目前目錄;

(2)查找标準:預設為指定路徑下的所有檔案;

(3)處理動作:預設為顯示;

比對标準:

1、    -name ‘FILENAME':對檔案名精确比對,預設嚴格區分大小寫;

        支援檔案名通配;

    -iname FILENAME':檔案名比對時不區分大小寫;

2、    -regex PATTERN:基于正規表達式進行檔案名比對,要同--regextype TYPE指定正則式類型;

3、    -user USERNAEM:根據屬主查找檔案;

    -group GROUPNAME:根據屬組查找檔案;

4、   -uid UID:根據uid查找檔案,删除使用者後可使用;

    -gid GID:根據gid查找檔案;

5、    -nouser:查找沒有屬主的檔案;

    -nogroup:查找沒有屬組的檔案;

6、    -type CHART(指定檔案類型):

        f:普通檔案;

        d:目錄檔案;

        c:字元裝置檔案;

        b:塊裝置檔案;

        l:符号(軟)連結檔案;

        p:管道裝置;

        s:套接字檔案;

7、    -size  [+|-]#unite(指定檔案大小,機關預設為位元組)

        #unit:精确大小#unit,機關可為K,M,G;

        +#unit:大于#unit;

         -#unit:小于#unit;

8、組合條件查找:預設為與邏輯;

    -a:與

    -o:或

    -not:非,例如:-not -type d為非目錄類型檔案;

注意摩根定律:

-not A -a -not B = -not(A -o B)

-not A -o -not B = -not(A -a B)

9、根據檔案時間戳查找:

     以天為機關:

    -atime [+|-]#:通路時間;

    -mtime [+|-]#:修改時間;

    -ctime [+|-]#:改變時間;

        #:此刻時間到之前的24小時的一天之内;

        +#:#天之前;

        -#:#天之内;

    以分鐘為機關

    -amin [+|-]#:通路時間;

    -mmin [+|-]#:修改時間;

    -cmin [+|-]#:改變時間;

10、    根據權限查找檔案    

    -perm [+|-]MODE(MODE用八進制數字表示) 

        MODE:表示ugo每一位權限精确比對;

        /MODE:表示ugo有一位權限符号就比對(或關系);

        -MODE:表示ugo的權限位隻有完全包含就比對(與關系);

(3)執行動作:預設為-print:顯示;

    -ls:類似ls -l的形式顯示每一個檔案的詳細資訊;

    -ok COMMAND {} \;互動執行指令,大括号為引用比對到的檔案;

    -exec COMMAND {} \;:不互動執行指令;

    例如:注意文法格式 {} \;

    find ./ -perm -006 -exec chomod o-w {} \;

解釋:找權限完全包含other使用者擁有讀、寫權限的檔案後,other設為沒有寫權限;

    find ./ -type d -ok chmod +x {} \;

解釋:找類型為目錄的檔案後,把檔案的屬主、屬組設為擁有執行權限,執行指令前讓使用者确認;

    find ./ -perm -020 -exec mv {} {}.new \;

解釋:找檔案權限完全包含為屬組有寫權限的檔案後,重命名為原名後加.new;

本文轉自 crystaleone 51CTO部落格,原文連結:http://blog.51cto.com/linsj/1751094,如需轉載請自行聯系原作者