- 今天介紹兩個文件查詢相關的命令:locate冕末、find壤追。
locate
locate
是一個利用數(shù)據(jù)庫來查詢文件污尉,查詢速度非郴嗣蓿快的命令损拢。-
也正因為locate查詢時是通過數(shù)據(jù)庫,所以有時會找到已經(jīng)被刪掉的文件撒犀,而且也找不到剛創(chuàng)建的文件:
locate1.png-44.5kB -
locate是通過/var/lib/mlocate來尋找數(shù)據(jù)的福压,這個數(shù)據(jù)庫文件默認每天更新一次(不同distribution可能不同)掏秩,也可以通過
updatedb
命令手動進行更新。更新時會依據(jù)/etc/updatedb.conf文件中的配置來進行更新荆姆。因此想要查看硬盤中最新的文件情況蒙幻,可以在執(zhí)行l(wèi)ocate前先執(zhí)行一次updatedb命令:
locate2.png-24.2kB -
locate命令在查詢時,所有在完整文件名(包括路徑名稱)中含有查詢參數(shù)的文件都會被查詢出來胆筒。此外還可以通過
-i
來忽略大小寫的差異邮破,通過-r
來接收正則表達式的顯示方式:
locate3.png-66.1kB
find
- find是Linux下最強大靈活,可用參數(shù)也最多的一個查詢命令仆救。需要注意的是决乎,find命令會直接去硬盤中查詢,因此時間一般會比較長派桩,使用中可通過限制查詢路徑來縮小范圍進而節(jié)省時間构诚。
- find命令的使用格式是:
find [PATH] [option] [action]
。接下來分幾個方面來對find命令的參數(shù)進行介紹铆惑。
1.與時間有關的參數(shù)
- 與時間有關的參數(shù)有:-atime(訪問時間)范嘱、-ctime(創(chuàng)建時間)和-mtime(修改時間),下面以-mtime說明:
-mtime n:n為數(shù)字员魏,意義是列出在n天之前的“24小時內(nèi)”更改過的文件
-mtime +n:列出在n天之前(不含n天本身)被更改過的文件
-mtime -n:列出在n天之內(nèi)(含n天本身)被更改過的文件
-newer file:file為一個已存在的文件丑蛤,列出比file還新的文件
-
用圖片來表示fine時間參數(shù)的意義如下:
find-time.png-7kB -
例如查詢/root/test目錄下,修改時間在24小時內(nèi)的文件:
find1.png-30.9kB
2.與用戶或用戶組有關的參數(shù)
-uid UID:查找uid為UID的文件
-gid GID:查找gid為GID的文件
-user user-name:查找所有者為user-name的文件
-group group-name:查找所屬組為group-name的文件
-nouser:查找所有者不存在于/etc/passwd的文件
-nogroup:查找所屬組不存在于/etc/group的文件
-
例如查詢/root/test目錄下用戶為lrp的文件:
find2.png-16.3kB
3.與文件權限撕阎、文件名和文件大小有關的參數(shù)
-name filename:查找文件名為filename的文件受裹,filename可使用通配符
-size [+-SIZE]:查找比size大(+)或小(-)的文件虏束,可使用c(byte)棉饶、k(KB)、M(MB)镇匀、G(GB)作為單位
-type TYPE:根據(jù)類型查找文件照藻,可使用f(一般文件)、b/c(設備文件)汗侵、d(目錄)幸缕、l(連接文件)、s(socket)晰韵、p(FIFO文件)
-perm mode:查找權限剛好等于mode的文件发乔,mode為權限的數(shù)字表示法,例如4755雪猪、755
-perm -mode:查找權限必須全部包括mode的文件栏尚,例如當mode為0744時,4755的文件也會被查詢出
-perm /mode:查找權限包含任一mode的文件浪蹂,例如當mode為755時抵栈,600也會被查詢出
-
查找/root下含有特殊權限s 或 t的文件:
find3.png-17.4kB -
查找/root/視頻/kali下大小超過800M的文件:
find4.png-27.8kB -
查找/root下文件名含有l(wèi)rp的文件:
find5.png-33.1kB
4.-exec參數(shù)
- -exec參數(shù)的用法為:
-exec command:command為其他命令,-exec后可接其他的命令來處理查找到的結果
- 例如
find /root -perm /7000 -exec echo {} > /root/find-rst.txt \;
坤次,表示查找/root下含有特殊權限的文件古劲,并把結果輸出到/root/find-rst.txt文件中(-exec和 ;中間的是結果處理命令,{}代表查找結果):
find6.png-14.9kB
END
參考資料:《鳥哥的Linux私房菜》