查找命令:local,find
local:非實時查找,通過系統數據庫進行搜索,無法查找到在系統數據庫更新后創建的文件,但是查找速度快,模糊查找(不僅會查找到文件名還會找到文件全路徑)
find:在硬盤上進行實時搜索,速度較慢,但是可以找到當前所有的數據
系統數據庫在 /var/lib/mlocate/mlocate.db
系統一般會定時更新數據庫,通過updatedb可以手動更新數據庫
locate:
-i:區分大小寫
-r:支持正則表達式
-n#:只查找前#個
find [選項][路徑][條件][處理動作](在寫路徑時目錄后要加/)
條件:
-name#:查找名稱為#的文件(支持正則表達式)
-inum#:查找inode為#的文件
-samefile#:查找與#節點號相同的文件
-links#:查找鏈接數為#的文件
-regex#:查找以#匹配的整個文件路徑的字符串而不只是文件
-user#:查找屬主為#的文件
-group#:查找屬組為#的文件
-uid#:查找uid#的文件
-gid#:查找gid#的文件
-nouser#:查找沒有屬主的文件
-nogroup#:查找沒有的文件
-type: f:普通文件 d:目錄 l:鏈接文件 s:套接字文件 c:字符設備文件 b:塊設備文件 p:管道文件
與:-a 或:-o 非:-not !
德摩根定律:
非(P且Q)=(非P)或(非Q)
非(P或Q)=(非P)且(非Q)
命令中包含*一般要加“”
-size(#、+#、-#):根據文件大小查找
#:(#-1,#]
-#:[0,#-1]
+#(#,正無窮)
-atime(#、+#、-#):根據文件訪問查找(以天為單位)
#:[#,#+1)
-#:[0,#]
+#[#+1,正無窮)
-mtime(#、+#、-#):根據文件修改查找
-ctime(#、+#、-#):根據文件元數據修改時間查找
-amin,-mmin,-cmin:以分鐘為單位
-perm(#、/#、-#):根據權限查找
#:精確匹配權限
/#:再給出的非空權限為上,至少有一位能匹配上,0表示不關注
-#:給出的非空權限位必須全部匹配上,0表示不關注
處理動作
-print:打印
-ls:顯示文件詳細信息(有些情況下加-ls會造成查找結果異常)
-delete:刪除文件
-fls #:把找到文件信息保存到#
-ok 命令 {} \;:對找到的文件執行命令(執行前進行交互式詢問)
例子:-ok cp{} {}.bak \;
{}代表找到的文件名稱,{}與\之間要有空格,\與;之間不能有空格,命令不支持別名
-exec與ok用法相同只是執行命令前不詢問
有些命令不能接受過多參數,此時命令執行可能會失敗,采用下面方式可規避此問題 find | xargs COMMAND
原創文章,作者:zzzzz1357x1,如若轉載,請注明出處:http://www.www58058.com/36234
對find命令的常見用法總結的很好,可以有一些示例,讓自己的文章看起來更豐滿一些,find在面試題中經常會出現,所以希望下來自己能好好的聯系,熟練掌握。