文件查找命令find介紹及使用

 文件查找命令find介紹及使用

find概述

1 find介紹

find是一個實時查找命令,可以精確查找,支持衆多查找標準,由於是遍歷指定目錄中的所有文件a查找的,所以速度相對較慢

2 find的命令格式

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

查找路徑:  默認的是當前路徑

查找標準:  

(1) 根據文件名查找                       -name   filename  

支持文件名匹配,但嚴格區分大小寫,如要不區分大小寫,使用-iname

如:查找/tmp下的以.txt結尾的無文件

   find   /tmp   -name  *.txt 

(2) 基於正則表達式的文件名查找           -regex    parttern 

如:查找 

(3) 根據文件所有者(屬主)查找           -user     username

如:查找、tmp下屬主是root的文件

find  /tmp   -user root

(4) 根據文件屬組查找                     -group    groupname

(5) 根據文件屬主uid查找                  -uid      uid

(6) 根據文件屬組gid查找                  -gid      gid

(7) 查找沒有屬主的文件                    -nouser    

(8) 查找沒有屬組的文件                    -nogroup

(9) 根據文件的類型查找                    -type     fdcblps

相信大家知道fdc ......他們代表的文件類型了,這裏就不做說明了

如:查找/tmp下文件類型爲目錄的文件

find   /tmp   -type  f

(10) 根據文件的大小查找                    -size     [+|-]#(kMG)

表示大於,-表示小於

KMG表示單位

如 +7k    表示大於7k的文件

   -7M    表示小於7M的文件

(11) 根據文件時間屬性查找   

     根據訪問文件的時間                    -atime|-amine       [+|-]#

     根據文件改變時間查找                  -ctime|-cmine       [+|-]# 

     根據文件修改時間查找                   -mtime|-mmine      [+|-] #

   [+|-]# 和上面一樣,+#表示至少多少時間內沒訪問過,-#表示#時間之內訪問過

   (-atime-ctime-mtime)的單位是天(-amine-cmine-mmine)單位是分鐘 

(12) 根據文件的權限查找                     

  -perm     mode|-mode|/made

                   mode   表示精確匹配

                   -mode   表示有一位匹配就行(本身包含或的關係)

                   /mode    文件權限能完全包含MDOE時才能找到(本身包含且關係)

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

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

處理動作:

  -print                     顯示查找結果

  -ls                        類似ls -l顯示每個文件的信息

  -ok  COMMAND  {}  \;    

COMMAND是指令,命令行操作 {}表示當前找到的路徑文件; \;必須有,表示結束

  -exec  COMMAND {}  \;  (與-okl一樣,但-ok的每一步操作都需要你確認是否執行,而-exec不用)

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

find /etc -not -perm /222 -ls

3.組合條件:就是組合查找條件的

            -a    與條件

            -o    或條件

            -not   非條件

 (如果給出了兩個條件沒有給連接方式時時默認的就是與邏輯

 not權限最高 帶括號的時候,括號要用反義;與的優先級高於或

如:查找/tmp下文件類型爲f 且大小大於10k的文件

find /tmp  -type d  -a  -size  +10k 

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

find /usr -not -user root -a -not -user bin -a -not -user student

find /usr -not \( -user root -o -user bin -o -user student \)

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

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

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