lunx中find 命令的使用

find

  • find查找基礎:

    find 查找路徑 查找標準 查找到以後的處理運作

    查找路徑:默認爲當前目錄

    查找標準:默認爲指定路徑下的所有文件

    處理運作:默認爲顯示


  • 匹配標準:

        -name 'FILENAME':對文件名作精確匹配

        文件名通配:

            *:任意長度的任意字符

            ?

            []

  • -iname 'FILENAME': 文件名匹配時不區分大小寫

  • -regex PATTERN:基於正則表達式進行文件名匹配 注意:正則表達式這裏是全部的匹配,

下面來舉例說明:

wKioL1RU7f6AzarsAADsGwITJ5M092.jpg

查找/etc/目錄中名字包含passwd的所有文件


  • -user USERNAME: 根據屬主查找

  • -group GROUPNAME: 根據屬組查找

  • -uid UID: 根據UID查找(當UID所對應的用戶刪除後,就只剩下了UID的號,這是方便查找哪些被刪除用戶的殘留文件。)

  • -gid GID: 根據GID查找(同上)

  • -nouser:查找沒有屬主的文件

  • -nogroup: 查找沒有屬組的文件

  • -type 

        f: 普通文件

        d:目錄

        c:字符文件

        b:塊設備

        l:鏈接文件

        p:管道

        s:套接字

  • -size [+|-]  (只要是符合標準的都可以顯示,包括子目錄例如:父目錄滿足條件,如果要是子目錄中有滿足條件的可以被查找到)

        #k(例如:10k那麼9-10k的都會顯示,他是會認爲9k多的也是10k)

        #M

        #G

  • 組合條件:(默認是與)

        -a

        -o

        -not

        /tmp目錄,不是目錄,並且還不能套接字類型的文件

        注意:這個是可以組合使用的例如:find /tmp/ -not \( -type d -o -type s \) 等價於

         find /tep/ -not -type d -not -type s

        /tmp/test目錄下,屬主不是user1,也不是user2的文件;


  • 按照時間查詢:

    按照天數

        -mtime:修改時間

        -ctime:改變時間

        -atime:進入時間

        [+|-]#

        按照分鐘數:

        -mmin

        -cmin

        -amin

        [+|-]#


  • 按照權限查找

        -perm MODE:精確匹配

        /MODE: 任意一位匹配即滿足條件

        -MODE: 文件權限能完全包含此MODE時才符合條件

        

        -644

        644: rw-r--r--

        755: rwxr-xr-x

        750: rwxr-x---

        find ./ -perm -001

        

  • 處理動作:

        -print: 顯示

        -ls:類似ls -l的形式顯示每一個文件的詳細

        -ok COMMAND {}(這裏是佔位符表示查詢的結果) \; 每一次操作都需要用戶確認

        -exec COMMAND {} \;


來。。我們來做題加深印象!!

1、查找/var目錄下屬主爲root並且屬組爲mail的所有文件;

wKioL1RU78Lzy_P_AAD7qIxJPR4903.jpg

2、查找/usr目錄下不屬於root,bin,或student的文件;

wKioL1RU8OmDBLKlAAFNYRnQjcE932.jpg

3、查找/etc目錄下最近一週內內容修改過且不屬於root及student用戶的文件;

wKioL1RU8dqCX8K-AAEECB2pYis903.jpg

find /etc -mtime -7 -not \ ( -user root -o -user student \)

4、查找當前系統上沒有屬主或屬組且最近1天內曾被訪問過的文件,並將其屬主屬組均修改爲root;

find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \; 

5、查找/etc目錄下大於1M的文件,並將其文件名寫入/tmp/etc.largefiles文件中;

find /etc -size +1M >> /tmp/etc.largefiles

find /etc/ -size +1M -exec echo {} >> /tmp/etc.largefiles \;

6、查找/etc目錄下所有用戶都沒有寫權限的文件,顯示出其詳細信息;

find /etc -not -perm /222 -ls

xargs這個命令可以總做在find後面(可以不用佔位符,輸出的結果不是每行一個,而是用空格隔開)

例如;find /etc -size +1M |xargs echo >> /tmp/etc.largefiles

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章