引言~
find 是 Linux 中強大的搜尋指令,不僅可以按照檔案名搜尋檔案,還可以按照權限、大小、時間、inode 号等來搜尋檔案。但是 find 指令是直接在硬碟中進行搜尋的,如果指定的搜尋範圍過大,find指令就會消耗較大的系統資源,導緻伺服器壓力過大。是以,在使用 find 指令搜尋時,不要指定過大的搜尋範圍。
find的指令格式:find+搜尋路徑(參數1)+ [參數選項] +搜尋内容(參數2)
相比其它linux指令,find 指令是比較特殊的指令,因為它有兩個參數: 第一個參數用來指定搜尋路徑; 第二個參數用來指定搜尋内容。
例如:
find ./ -type f -size 1033c
#搜尋目前目錄下大小為1033位元組的普通檔案
-type f
指定要搜尋的檔案為普通檔案,
-size 1033c
指定搜尋的檔案大小為1033位元組,

find 指令還有一個小特性,就是搜尋的檔案名必須和你的搜尋内容一緻才能找到。如果隻包含搜尋内容,則不會找到,如何我們如果想要大小通吃,就要使用 -iname 來搜尋檔案
常用的find指令:
-name 搜尋檔案名
-iname 搜尋檔案名時大小寫不敏感
-type d 目錄 f 普通檔案 l 符号連結
-size 不加其它參數預設搜尋5M 左右的檔案(如下圖),其它參數 +5M 大于 -5M 小于
find其它常用指令
pathname: find指令所查找的目錄路徑。例如用.來表示目前目錄,用/來表示系統根目錄。
-print: find指令将比對的檔案輸出到标準輸出。
-exec: find指令對比對的檔案執行該參數所給出的shell指令。相應指令的形式為'command' { } \;,注意{ }和\;之間的空格。
-ok: 和-exec的作用相同,隻不過以一種更為安全的模式來執行該參數所給出的shell指令,在執行每一個指令之前,都會給出提示,讓使用者來确定是否執行。
#-print 将查找到的檔案輸出到标準輸出
#-exec command {} \; —–将查到的檔案執行command操作,{} 和 \;之間有空格
#-ok 和-exec相同,隻不過在操作前要詢使用者
-name filename #查找名為filename的檔案
-perm #按執行權限來查找
-user username #按檔案屬主來查找
-group groupname #按組來查找
-mtime -n +n #按檔案更改時間來查找檔案,-n指n天以内,+n指n天以前
-atime -n +n #按檔案通路時間來查GIN: 0px">
-ctime -n +n #按檔案建立時間來查找檔案,-n指n天以内,+n指n天以前
-nogroup #查無有效屬組的檔案,即檔案的屬組在/etc/groups中不存在
-nouser #查無有效屬主的檔案,即檔案的屬主在/etc/passwd中不存
-newer f1 !f2 找檔案,-n指n天以内,+n指n天以前
-ctime -n +n #按檔案建立時間來查找檔案,-n指n天以内,+n指n天以前
-nogroup #查無有效屬組的檔案,即檔案的屬組在/etc/groups中不存在
-nouser #查無有效屬主的檔案,即檔案的屬主在/etc/passwd中不存
-newer f1 !f2 #查更改時間比f1新但比f2舊的檔案
-type b/d/c/p/l/f #查是塊裝置、目錄、字元裝置、管道、符号連結、普通檔案
-size n[c] #查長度為n塊[或n位元組]的檔案
-depth #使查找在進入子目錄前先行查找完本目錄
-fstype #查更改時間比f1新但比f2舊的檔案
-type b/d/c/p/l/f #查是塊裝置、目錄、字元裝置、管道、符号連結、普通檔案
-size n[c] #查長度為n塊[或n位元組]的檔案
-depth #使查找在進入子目錄前先行查找完本目錄
-fstype #查位于某一類型檔案系統中的檔案,這些檔案系統類型通常可 在/etc/fstab中找到
-mount #查檔案時不跨越檔案系統mount點
-follow #如果遇到符号連結檔案,就跟蹤連結所指的檔案
-cpio %; #查位于某一類型檔案系統中的檔案,這些檔案系統類型通常可 在/etc/fstab中找到
-mount #查檔案時不跨越檔案系統mount點
-follow #如果遇到符号連結檔案,就跟蹤連結所指的檔案
-cpio #對比對的檔案使用cpio指令,将他們備份到錄音帶裝置中
-prune #忽略某個目錄