作用:實時查詢工具,通過遍歷指定路徑完成問件查詢,遞迴地在層次目錄中處理檔案
find搜尋目錄樹上的每乙個檔名,它從左至右運算給定的表示式,按照優先規則進行匹配,直到得出結果(左邊運算在』與』操作中得出假,在』或』操作中得出真),然後 find移向下乙個檔名。
第乙個以 '- ', 『(』 , 『)』 , 『,』 或 『!』 這些字元起始的引數是表示式的開始;在它之前的任何引數是要搜尋的路徑,在它之後的任何引數都是表示式的餘下部分。如果沒有路徑引數,預設用當前目錄。如果沒有表示式,預設表示式 用 『-print』
當所有檔案都成功處理時 find 退出並返回狀態值0。如果發生錯誤則返回乙個大於0的值。
特點:精確查詢,實時查詢
可能只搜尋使用者具備讀取和執行許可權的目錄
查詢速度略慢
目錄:/,/etc,/var,/home之類都是
選項: 搜尋目錄層級
-maxdepth level :最大搜尋目錄深度
-mindepth level :最小搜尋目錄深度
-name filename :根據檔名匹配,支援萬用字元
例:find /etc -name pa*wd
-iname :忽略大小寫
-inum :根據inode節點號查詢
-samefile name :相同inode號的檔案
-links # :連線數為#的檔案
-regex "pattern" :以模式匹配整個檔案路徑,而非檔名稱
例:find /data -regex ".*\.sh$"
根據檔案屬主和屬組查詢;
-user username:查詢屬主為指定使用者的檔案
-group groupname:查詢屬組為指定組的檔案
-uid useruid:查詢屬主為指定uid的檔案
-gid groupgid:查詢屬組為指定gid的檔案
-nouser:查詢沒有屬主的檔案
-nogroup:查詢沒有屬組的檔案
根據檔案型別查詢:
-type:
b 特殊塊檔案(緩衝的)
c 特殊字元檔案(不緩衝)
d 目錄
p 命名管道 (fifo)
f 普通檔案
l 符號鏈結
s 套接字
空檔案或目錄
-empty
-type d -empty
根據檔案大小:
-size:常用單位(k m g c(byte))
+#m:表示大於#m的檔案,+5m
-#m:表示小於於#m的檔案,-5m
根據時間查詢:
以天為單位:
-atime:訪問時間
+,-:+10,超過十天訪問過的檔案,-10十天內訪問過的檔案
-mtime:修改時間,檔案內容最後一次修改的時間,檔案內容修改
-ctime:改變時間,檔案最後乙個改變的時間,屬性及檔名改變
以分鐘為單位:
-amin:訪問時間
-mmin:修改時間
-cmin:改變時間
根據檔案許可權查詢:
-perm:
mode:精確查詢
/mode:任何一類(u,g,o)物件的許可權只要匹配一位就滿足條件。或的關係。早期用+號表示
-mode:每一類物件都必須擁有指定許可權才滿足條件
0:表示不關注
例:find -perm 755 file,精確匹配許可權755的檔案
find -perm /222 file,屬主,屬組,其他人,其中乙個有寫許可權就匹配
find -perm -222 file,屬主,屬組,其他人,必須每個都有寫許可權就匹配
find -perm -002 file ,只有其他人有寫許可權時才匹配
動作: -print:預設的處理動作,將匹配到的顯示到螢幕
-ls:類似於ls -l檢視檔案
-delete:匹配到的內容刪除(危險,不要用)
-fls file:查詢到的檔案以長格式資訊儲存到指定的檔案中
-ok command {} \; :對查詢到的檔案,執行由command位指定的命令,缺點是對每個匹配的檔案執行命令前都需要確認
例:find /data -name "*.sh" -ok mv {} /tmp \;
{}:引用前面find匹配到的檔案,引用查詢到的檔名稱自身,例如匹配的是ping.sh,name{}內就位
\;:語法格式,必須以\;結尾
-exec command {} \; :對查詢到的檔案,執行由command位指定的命令,和ok不同的是不需要乙個乙個確認
例:find /data -name "*.sh" -ok mv {}.bak /tmp \;
{}.bak:移動到/tmp目錄下改名為以.bak為字尾的檔案
[root@centos7 ~]#find /var ! -user root ! -user lp ! -user gdm -type f
/var/lib/colord/storage.db
/var/lib/nfs/state
/var/lib/unbound/root.key
/var/lib/setroubleshoot/setroubleshoot_database.xml
/var/lib/setroubleshoot/email_alert_recipients
/var/lib/postfix/master.lock
/var/spool/mail/rpc
/var/spool/mail/cheng
/var/spool/mail/ning
嘆號表示取反。
linux檔案查詢find命令
1.locate 與 find命令的區別 locate命令用於查詢檔案,它比find命令的搜尋速度快,它需要乙個資料庫,這個資料庫由每天的例行工作 crontab 程式來建立。當我們建立好這個資料庫後,就可以方便地來搜尋所需檔案了。即先執行 updatedb 無論在那個目錄中均可,可以放在cront...
linux檔案查詢 find命令
1 find命令的格式 find pathname options print exec ok 2 find命令的引數 pathname find命令所查詢的目錄路徑。例如用 來表示當前目錄,用 來表示系統根目錄。print find命令將匹配的檔案輸出到標準輸出。exec find命令對匹配的檔案...
Linux檔案查詢命令find
關於find命令 由於find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。即使系統中含有網路檔案系統 nfs find命令在該檔案系統中同樣有效,只你具有相應的許可權。在執行乙個非常消耗資源的find命令時,很多人都傾向於把它放在後台執行,因為遍歷乙個大的檔案系統可...