1.locate:非實時,模糊查找,查找是根據全系統文件數據庫進行的,優勢速度快
find:實時,精確,支持衆多查找標準,遍歷指定目錄中的所有文件完成查找,速度慢
#updatedb 手動生成文件數據庫
2.find命令的使用方法:
(1)find命令的格式:find 查找路徑 查找標準 查找到以後的處理運作
查找路徑:默認爲當前目錄
查找標準:默認爲指定路徑下的所有文件
處理運作:默認爲顯示
(2)find命令的匹配標準:
-name 'FILENAME':對文件名作精確匹配 支持文件名通配: *?[]
-inname 'FILENAME':文件名匹配時不區分大小寫
-regex PATTERN:基於正則表達式進行文件名匹配
-user USERNAME:根據屬主查找
-group GROUPNAME:根據屬組查找
-uid UID:根據UID查找
-gid GID:根據GID查找
-nouser:查找沒有屬主的文件
-nogroup:查找沒有屬組的文件
-type:根據文件類型來查找文件
文件類型的分類及表示:
-(f):普通文件(f)
d:目錄文件
b:塊設備文件(block)
c:字符設備文件(character)
l:符號鏈接文件(symbolic link file)軟連接文件
p:命令管道(pipe)
s:套接字文件(socket)
-size:根據文件大小來查找文件(默認查找爲字節 B)
[+|-]#k [+|-]#m [+|-]#G 1k:0.nk的都算1k 10k:9.nk-10k都算10k
根據時間查找 [+|-]#
-mtime:modify time
-ctime:change time
-atime:
mtime和ctime的區別在於,只有修改了文件的內容,纔會更新文件的mtime,而對文件更名,修改文件的屬主等操作,只會更新ctime。
atime, 這個就是每次查看文件內容的時候會更新。比如cat操作,而ls操作是不會更新的
-mmin:
-cmin:
-amin:
-perm MODE :根據權限查找(例如755)查找的文件權限剛好爲755的纔會被列出
-MODE:文件權限能完全包含此MODE的時候 才能顯示
我們查找644, 655 666 755 744...都會被列出
/MODE:我們要查找的權限爲644,查找的結果只要包括按權限關係分別對應的6or4or4都會被列出
eg:我們要查找的權限爲644,舉一個符合-MODE查找的例子:600 040 004...都會符合
組合條件查找:-a與 -o或 -not非 (未指明查找組合關係時,默認爲與關係)
例:/tmp目錄下,不是目錄,並且還不是套接字類型的文件
find /tmp -not -type d -a -not -type s
find /tmp -not \(-type d -o -type s\)
(3)find命令的運作
-print:顯示 (默認的運作爲顯示出來)
-ls:類似ls -l的形式顯示每一個文件的額詳細信息
-ok COMMOND {} \;每一次操作都需要用戶的確認
-exec COMMOND {} \;每一次操作都不需要用戶的確認
eg:-ok chmod +x {} \; {}2表示這次查找到的文件