簡介
在檔案系統上查詢符合條件的檔案的過程 ;linux find 命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則 find 命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。
一、命令工具
locate:非實時查詢工具,依賴於系統在較空閒時自動構建的索引資料庫查詢。優點:按索引查詢,速度更快;缺點:索引資料庫的構建並非是根據檔案的修改實時更新。所以,查詢的資訊是過期的,只能夠模糊查詢;find:實時查詢;find查詢需要遍歷整個預設或指定的目錄,能夠做到精確查詢,查詢速度卻很慢。
二、find使用說明
find [option]... [查詢路徑] [查詢條件] [處理動作]查詢路徑:預設為當前路徑查詢條件:根據option指定查詢標準,具體條件可以使用正規表示式匹配處理動作:對符合條件的檔案作出的動作;預設為輸出到螢幕
三、option和查詢條件:
1、根據檔名查詢:
-name filename 可使用正則匹配
-inamefilename 不區分字元大小寫
-regex "pattern" 匹配整個檔案路徑字串,而不僅僅是檔名
2、根據檔案型別查詢:
-type f|b|d|l|c|s
f:普通檔案
b:塊檔案c:字元檔案
s:socket 套接字檔案
3、根據屬主,屬組查詢
-nouser 查詢沒有屬主的檔案
-nogroup 查詢沒有屬組的檔案
-user username 查詢屬主為username的檔案
-group groupname 查詢屬組為groupname的檔案
-uid uid-gid gid
4、根據檔案大小查詢
-size [+|-] #
單位:k,m,g
#(#-1,#] #-1 < filesize <= #
+# (#,+oo) # < filesize
-# [0,#-1) 0 <= filesize < #-1
5、根據時間戳
單位為」天「
-atime accessed時間戳
-mtime modified時間戳 修改內容
-ctime changed時間戳 修改內容,屬性
單位為」分「
-amin
-mmin
-cmin
#[#,#+1) 第 #天 # <= file[a|m|c]time < #+1
+# [#+1,+oo] #天前 #+1 <= file[a|m|c]time
-# [0,#) #天內 0 <= file[a|m|c]time < #
註解:#為當前時間減去檔案時間戳的時間6、根據許可權
-perm mode :搜尋檔案許可權『剛好等於』 mode 的檔案,這個 mode 為類似 chmod的屬性值,舉例來說, -rwsr-xr-x 的屬性為 4755 !
-perm -mode :搜尋檔案許可權『必須要全部囊括 mode 的許可權』的檔案,舉例來說,www.linuxidc.com我們要搜尋 -rwxr--r-- ,亦即 0744 的檔案,使用 -perm -0744,當乙個檔案的許可權為 -rwsr-xr-x ,亦即 4755 時,也會被列出來,因為 -rwsr-xr-x 的屬性已經囊括了 -rwxr--r-- 的屬性了。
-perm /mode :搜尋檔案許可權『包含任一 mode 的許可權』的檔案,舉例來說,我們搜尋-rwxr-xr-x ,亦即 -perm /755 時,但乙個檔案屬性為 -rw-------也會被列出來,因為他有 -rw.... 的屬性存在!
7、組合查詢
與:-a and
或:-o or
非:-not !
公式:
!a -o !b = !(a -a b)
!a -a !b = !(a -o b)
處理動作
-print: 預設處理動作
-ls:類似於對查詢到的每個檔案做"ls -l"的操作;
-delete: 刪除查詢到的檔案;
-fls /path/to/somefile:查詢到的檔案的詳細路徑資訊儲存至指定檔案中;
-ok command {} ;
對每個檔案執行指定的命令之前需要使用者事先確認;-exec command {} ;
無需使用者確認;
linux find命令使用
語 法 find 選項 引數 find 指定查詢目錄 查詢規則 查詢完後執行的 action find指令在指定目錄下查詢檔案。find指令還能夠對查詢到的檔案執行指定的操作,這種功能是通過呼叫其他linux指令來實現的。使用find指令時必須指定乙個查詢的起始目錄,find指令將從指定目錄向下遞迴...
Linux find命令使用
1 查詢 var logs目錄中更改時間在7天前的普通檔案 2 在當前目錄下查詢檔案內容包含main的檔案 二進位制檔案 test 匹配.test.c int main root kevin opt d00148588 3 把查到的結果輸出到檔案中 root kevin opt d00148588 ...
Linux find 命令使用示例
按名字查詢 1.查詢home目錄及其子目錄的 txt 檔案 find name txt print 2.查詢當前目錄及其子目錄的 txt 檔案 find name txt print 3.查詢以大寫字母開頭的檔案 find name a z print 按檔案許可權相位查詢 1.查詢許可權為755的...