查找工具locate和find
在工作中我們總是會去查找一些我們需要的內容,然而往往這些東西總是會被大量的數據隱藏。這個時候我們就需要一些查找工具來幫我們處理這些數據幫我們快速的找到我們需要的數據,在我們運維人員的工作過程中我們更須要他來幫我們快速的解決問題。那么今天我要介紹的就是locate和find兩種查找工具。
首先要說的是locate,locate是一種非實時的查找,它依賴于事先建立的數據庫,而且索引的構建是在系統較為空閑時自動進行,還需要管理員手動進行數據庫的更新。另外索引的構建過程還需要遍歷真個根文件系統,因此也是及其消耗資源的。locate是一種模糊查找它的的查找速度是很快的,因為它的索引庫事先已經建立過。使用方法是:locate ?KEYWORD?
接下來就來介紹一下find查找工具,find查找工具是一種實時的查找工具,它是通過遍歷指定路徑下的文件系統來完成文件的查找。find的查找速度相對于locate來時較慢,但是find是精確的實時的查找。接下來給大家介紹一下find查找的語法:
find [OPTION]...[查找路徑][處理動作]
查找路徑:指定具體目標路徑,默認為當前路徑。
查找條件:指定的查找標準,可以文件名,大小,類型,權限等標準進行,默認為找出指定路徑下的
所有文件。
處理動作:就是對符合條件的文件做什么操作默認為輸出至屏幕。?
查找條件:
搜索層級:
-maxdepth ?level ? 最大搜索目錄深度,指定的目錄為第一級。
-mindepth ?level ? 最小搜索目錄深度。
根據文件名查找:
-name ?"文件名稱" :支持使用glob
*, ?, [], [^]
-iname ?"文件名稱":不區分字母大小寫。
-regex "PATTERN" : 以PATTERN匹配整個文件路徑字符串,而不僅僅是文件名稱。
根據屬組屬主查找:
-user USEERNAME :查找屬主為指定用戶的文件。
-group groupname ?:查找屬組為指定用戶的文件。
-UID ?userID ? :查找屬主為指定的UID好的文件。
-gid ?group ID : 查找屬組為指定的GID號的文件。
-Nouser :查找沒有屬主的文件。
-nogroup :查找沒有屬組的文件
根據文件類型查找:
-type TYPE:
f:普通文件
? d :目錄文件
? ?l :符號鏈接文件
? s :套接字文件
b :塊設備文件?
c :字符設備文件
p :管道文件
混合條件:
與 :-a
或 :-o
非 :-not ,!
!A ?-a !B =!(A -o B)
!A ?-o ?!B ?= !(A ?-a ?B)
例如:找出/tmp 目錄下,屬主不是root,且文件名不是fstab 的文件
find /tmp -not \(-user root ?-o ?-name ?fstab\) ? -ls
? 根據文件大小查找:
-size ? [+|-]#unit
常用單位:G , M , K ?, c(byte)
#UNIT :(#-1,#] ?表示大于#-1,小于等于#。
-#UNIT :[0,#-1] ? 表示大于0,小于等于#-1.
+#UNIT :[# oo ] ? 表示大于#。
根據時間戳:
以天為單位:
-atime(表示訪問時間,讀取時更新) ? [+|-]#
#: ?[# ?,#-1)
+# :[#+1 , oo]
-# ?:[0 ,#)
?-mtine(表示數據修改時間)
?-ctime(原數據修改時間)
以分鐘為單位:
-amin
-mmin
-cmin
根據權限查找:
-perm ?[ / | -]MODE
MODE:精確權限匹配
/MOD :任何一類(u ,g ,o)對象的權限只要能一位匹配即可,“/”是或關系,+從centos7開始淘汰,centos6及其之前的系統 / + 均可使用。
-MODE:每一類對象都必須同時擁有有指定的權限與關系。
處理動作:
-print ?:磨人的處理動作,顯示至屏幕。
-ls :類似于對查找到的文件執行“ls -l” 命令
-delete :刪除查找到的文件。
例如:find ?-size +6k ?-delete
-fls file ?:查找到的所有文件的長格式信息保存至指定文件中。
-ok ?-exce ? ok交互式 , exce 直接運行
例如:find ?-name ?"*.tmp" ?-ok ?-f ?{} ?\;
由于很多命令不支持管道來傳遞參數,而日常工作中有這個必要,所以就有了xargs命令。
xargs用于產生某個命令的參數,xargs可以讀入stdin的數據,并且可以空格符或回車符將stdin的數據分隔成為arguments
注意:文件名或只是其他意義的名詞內含有空格的情況,而且有些命令不能接受過多參數,命令執行可能會失敗,xargs可以解決。
示例:
ls |xargs ?rm
find /sbin -perm ?+700 |ls -l 這是個錯誤的命令
改為:find ?/sbin ? -prem ?+700 |xargs ?ls ?-l
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/sanqianfanhua01/p/8386903.html
總結
以上是生活随笔為你收集整理的查找工具locate和find的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2012第二届GIS制图大赛——公开课技
- 下一篇: HALCON示例程序distance_t