linux的find命令詳解
find命令是用來在給定的目錄下查找符合給定條件的文件
find [OPTIONS] [查找起始路徑] [查找條件] [處理動(dòng)作]
一、OPTIONS參數(shù)
-P、-L、-H:控制軟連接的對待方式,用的不多。不介紹了
二、查找路徑
就是個(gè)目錄路徑,相對和絕對都可以。
三、查找條件
(一)、根據(jù)名稱查找
-name "PATERN"
-iname "PATERN" :不區(qū)分名稱字母大小寫
-regex%20PATTERN:基于正則表達(dá)式的模式查找,匹配的是整個(gè)路徑,而非單個(gè)文件名。
(二)、根據(jù)文件從屬關(guān)系查找:
-user%20USERNAME:查找屬主指定用戶的所有文件;
-group%20GRPNAME:查找屬組指定組的所有文件;
-uid%20UID:查找屬主指定的UID的所有文件;
-gid%20GID:查找屬組指定的GID的所有文件;
-nouser:查找沒有屬主的文件;
-nogroup:查找沒有屬組的文件;
(三)、根據(jù)文件的類型查找:
-type:根據(jù)不同的文件類型篩選
普通文件
目錄文件
符號鏈接文件
塊設(shè)備%20文件
字符設(shè)備文件
管道文件
套接字文件
(四)、根據(jù)文件的大小查找:
-size%20[+|-]#UNIT
常用單位:k,%20M,%20G
#UNIT:(#-1,%20#]
-#UNIT:[0,#-1]
+#UNIT:(#,%20oo)
1、1k時(shí):a3只有15個(gè)字節(jié),也被算做1k也查詢,即條件符合大于0k%20(%20#-1%20),小于等于1k%20(#)
2、+1k時(shí):a和a1滿足大于1k(#)的條件
3、-62k時(shí):只有a3滿足大于等于0,小于等于 61k(#-1)的要求。
(五)、 根據(jù)時(shí)間戳查找:
按照atime(文件的最后訪問時(shí)間)、mtime(文件的最后修改時(shí)間)、ctime(文件最后改變時(shí)間)三個(gè)變量來查詢:
以天為單位,
-atime [+|-]#
#:[#, #-1) :最后訪問時(shí)間在#天前(大于等于#天前,小于#-1天前)
等價(jià)于最后訪問時(shí)間與當(dāng)前的時(shí)間差 大于 (#-1)*24小時(shí),小于等于 #*24小時(shí)
-#:(#, 0] :最后訪問時(shí)間在#天以內(nèi),不包括24小時(shí)前的那一刻。
等價(jià)于最后訪問時(shí)間與當(dāng)前的時(shí)間差小于 #*24小時(shí)
+#:(oo, #-1] :最后訪問時(shí)間在#-1天以前的。包括#-1天前
等價(jià)于最后訪問時(shí)間與當(dāng)前的時(shí)間差大于等于 #*24小時(shí)
-mtime
-ctime
以“分鐘”為單位:
-amin
-mmin
-cmin
-daystart:時(shí)間條件的開始先決條件。如果沒有的時(shí)候,比較的開始時(shí)間為當(dāng)前時(shí)間。如果有此參數(shù),則比較的開始時(shí)間為當(dāng)天的23:59:59。
查詢出來的各個(gè)文件名稱對應(yīng)時(shí)間如下:
文件名
修改時(shí)間
服務(wù)器當(dāng)前時(shí)間
09/08%2017:34
09/08%2017:20
09/07%2012:20
09/08%2013:20
09/07%2022:20
(六)、根據(jù)權(quán)限查找
-perm
-perm%20[/|-]mode
mode:精確權(quán)限匹配;
/mode:任何一類用戶(u,g,o)的權(quán)限中的任何一位(r,w,x)符合條件即滿足;9位權(quán)限之間存在“或”關(guān)系;
-mode:每一類用戶(u,g,o)的權(quán)限中的每一位(r,w,x)同時(shí)符合條件即滿足。9位權(quán)限之間存在“與”關(guān)系;
看案例:
(1):精確查找。就是匹配權(quán)限值完全相等的;
(2):/mode。 只要有一組用戶匹配到一個(gè)權(quán)限即可。
通俗說:就是屬主擁有給定屬主權(quán)限的某一個(gè),或者數(shù)組擁有給定權(quán)限的某一個(gè),或者其他用戶擁有給定權(quán)限的某一個(gè)即可。