查詢系統上預先建立的檔案索引資料庫 /var/lib/mlocate/mlocate.db
locate查詢事先依賴於先構建的索引,索引的構建是在系統較為空閒時自動進行(週期性任務),或管理員手動更新資料庫(updatedb)
索引構建過程需要遍歷整個根檔案系統,極消耗資源.
工作特點:
非實時查詢(資料庫查詢:locate)
查詢速度快
模糊查詢
搜尋的是檔案全路徑,不僅僅是檔名
可能只所搜使用者具備讀取和執行許可權的目錄
locate使用方法
安裝locate命令yum install mlocate
初始化sudo updatedb
選項選項
說明-i
忽略大小寫
-n只列出符合條件的前幾個
-r支援正規表示式
實施查詢工具,通過遍歷指定路徑完成檔案查詢
特性
查詢速度略慢
精確查詢
實時查詢
可能只搜尋使用者具備讀取和執行許可權的目錄
基本語法: find [option] .... [查詢路徑] [查詢條件] [處理動作]
1.搜尋層級
-maxdepth level 最大搜尋目錄深度,指定目錄為第1級-mindepth level 最小搜尋目錄深度
2. 根據檔名和inode查詢
-name "檔名稱" 根據檔名查詢支援使用glob萬用字元-iname "檔名稱" 不區分字母大小寫
-inum n 按inode號查詢
-samefile name 相同inode號的檔案
-links n 鏈結數為n的檔案
-regex "pattern" 以pattern匹配整個檔案路徑字串,而不僅僅是檔名稱
3. 根據屬主,屬組查詢
-user username 查詢屬主為指定使用者(uid)的檔案-group grpname 查詢屬組為指定組(gid)的檔案
-uid userid 查詢屬主為指定的uid號的檔案
-gid groupid 查詢屬組為指定的gid號的檔案
-nouser 查詢沒有屬主的檔案
-nogroup 查詢沒有屬組的檔案
4. 根據檔案型別查詢
-type type:f: 普通檔案
d: 目錄檔案
l: 符號鏈結檔案
s:套接字檔案
b: 塊裝置檔案
c: 字元裝置檔案
p: 管道檔案
5. 根據檔案大小
-size [+|-]#unit 常用單位:k, m, g,c(byte)例如:-size 2k 匹配取值為(1k~2k)
-size -5k 取值範圍為(0-4k包括5k)
-size +5k 取值範圍為(5k+ 不包括5k)
6. 根據時間戳查詢
以"天"為單位-atime [+|-]# 讀取時間
#: [#,#+1]次
+#: [#天以上]
-#: [0,#不包括#天]
-mtime 修改時間
-ctime 狀態更改時間
以"分鐘"為單位
-amin
-mmin
-cmin
7. 根絕檔案許可權查詢
-perm #例如: -perm 600
/600 或者模糊匹配
-602 other許可權位有讀許可權才會匹配
-print 列印輸出預設-ls 顯示詳細資訊
-delete 刪除匹配的檔案
-fls file 匹配到的檔案重定向到指定的檔案中
-ok command {} \; 對每個檔案指定command命令,每個檔案需要互動使用者確認
-exec command {} \; 類似-ok,不需要使用者互動確認.
組合條件
與:-a或:-o
非:-not, !
1. 使用locate忽略大小寫查詢 password檔案2. 使用find查詢/下所有沒有屬主屬組的檔案
3. 使用find查詢屬主為root 屬組不為test 任意乙個許可權位包含777的鏈結檔案
4. 使用find 找到 hh1-10 檔案並刪除
5. 使用find 找到/var/log/ 下面型別為普通檔案,七天之前的所有檔案按照修改日期查詢
答案
1. 使用locate忽略大小寫查詢 password檔案locate -i password
2. 使用find查詢/下所有沒有屬主屬組的檔案
find / -nouser -nogroup
3. 使用find查詢屬主為root 屬組不為test 任意乙個許可權位包含777的鏈結檔案
find / -user root -not -group test -perm /777 -type l
4. 使用find 找到 hh1-10 檔案並刪除
find / -iname "hh*" -exec rm -rf {} \;
5. 使用find 找到/var/log/ 下面型別為普通檔案,七天之前的所有檔案按照修改日期查詢
find /var/log/ -type f -mtime +7
linux檔案查詢
命令與檔案的查詢 which 尋找執行檔案 which a command a 將所有由path目錄中可以找到的命令均列出來,而不只是第乙個被找到的命令名稱 eg which a ifconfig 檔案的查詢 whereis 尋找特定的檔案 bmsu 檔案或者目錄 引數 b 只尋找二進位制檔案 m ...
linux 檔案查詢
文字查詢 grep egrep fgrep 檔案查詢 locate find locate和find的區別 locate有自維護的資料庫 linux自建,與所有檔案關聯 每天linux會定時對其進行更新,而locate就在此資料庫中查詢,所以查詢速度非常快,但是缺點也很明顯,不能實時查詢 比如剛裝l...
Linux 檔案查詢
檔案查詢 簡介which 命令查詢 find 檔案查詢,針對檔名 locate 檔案查詢,依賴資料庫 一 命令檔案查詢 一 查詢ls 命令的位置 which ls 從path環境變數或者 whereis vim二 任意檔案 find 語法find path options expression ac...