文件查找
1、locate 根據全系統文件數據庫進行查找(非實時的,系統每天特定時間對系統中所有文件都進行收集存庫)(非實時模糊查找)
update 手動生成文件數據庫(運行一遍要很長時間)
2、find (實時精確遍歷系統目錄文件)
使用方法:find 查找路徑 查找標準 查找後的處理動作
查找路徑:默認爲當前目錄
查找標準:默認爲指定路徑下的所有文件
處理動作:默認爲打印到屏幕上
-name FILENAME
支持通配符
-iname FILENAME 不區分大小寫
-regex PATTERN 基於正則表達式
-user USERNAME 根據屬主查找
-user GROP 根據屬組查找
-uid ID 根據用戶id查找
-gid ID 根據組id查找
-nouser 查找沒有屬主的文件
-nogroup 查找沒有屬組的文件
-type 根據文件類型來查找
f:普通文件
d:目錄
c b l p s...
-size 根據文件大小來查找 ( 小於整數時向上取整 )
[+|-]#K
[+|-]#M
[+|-]#G
組合條件
-a
-o
-not
例:find /tmp -nouser -a type d
find /tmp -not -type d
find ./ -not \(-user user1 -o -user user2\)
-mtime 創建時間(天)
-ctime 修改時間(天)
-atime 訪問時間(天)
以此刻時間爲準向前的時間
[+ | -] + time 時間time天之前
- time 時間time天內
-mmin
-cmin
-amin
[+ | -] 用法和time相同單位爲分鐘
-pern 權限
查找某權限的文件
MODE 權限等於MODE的文件
/MODE 任意一位匹配就滿足條件
-MODE 文件權限能完全包含此MODE時才符合條件
find 執行動作
-print 顯示
-ls 類似ls -l的形式顯示每一個文件的詳細信息
-ok COMMAND {} \: 每一次操作都要用戶確認 花括號表示引用查到的文件名
-exec COMMOAND {} \: 不要用戶確認
例: find ./ -perm -006 -exec chmod o-w {} \:
find ./ type d -ok chmod +x {} \:
find ./ -perm -020 mv {} {}.new \:
查找內容 | xargs CPMMAND 將查找到的內容直接使用管道送給xargs 後面跟命令進行處理
例: find /etc -size +1M | xargs echo >> /tem/etc.la
總結:
locate 是從數據庫中查找文件,可能因爲數據庫沒有更新而不會實時的查找文件,但是速度會比find快很多
find是實時的根據路徑逐一的對文件進行檢索,速度肯定沒有locate快,但是會實時查找,總的來說find會比較常用一些。