1. 程式人生 > >linux find和locate命令詳解

linux find和locate命令詳解

 linux中find命令優點是能實現精確查詢,缺點對系統資源耗費大。 

一:檔案查詢命令,按檔名稱查詢. 官方要求檔名需要加雙引號,保證搜尋的完整性。
find 目錄 -iname " init "(不區分大小寫)
find 目錄 -name “init”(所有包含init的檔案或目錄)
find 目錄 -name “init ”(以init結尾)
find 目錄 -name“ init
” (以init開頭)
find 目錄 -name init??? (init後面有3個字元)

二:按檔案大小查詢:
find 目錄 -size +204800 (在目錄下查詢大於100M的檔案).
find 目錄 -size +100M (在目錄下查詢大於100M的檔案).
204800代表資料塊,1個數據塊=0.5位元組。100M=102400kb=204800資料塊。

三:按所有者,所屬組來查詢:
find 目錄 -user lily(在目錄下查詢所有者為lily的所有檔案)
find 目錄 -group lily (在目錄下查詢所屬組為lily的所有檔案)

四: 根據time時間戳查詢(以天為單位):

-atime:訪問時間,就是一個檔案最後一次被訪問的時間
-mtime:修改時間,就是檔案的內容最後被修改的時間
-ctime:改變時間,就是檔案或者目錄的屬性(屬主、屬組、許可權等等)被改變的時間
根據min時間戳查詢(以分鐘為單位):
-amin:意義同-atime
-mmin:意義同-mtime
-cmin:意義同-ctime

find /etc/ -cmin -5 (在/etc下查詢5分鐘內被修改過屬性的檔案或目錄)
find / -ctime +20( 最近修改檔案時間20分鐘以前)
find / -mtime +7 (修改檔案為7天之前的)
find / -mtime 7 ( 修改檔案為第7天,就是往前推7天)
find / -mtime -7 (修改檔案為7天之內的)

五:按多重條件查詢
find /etc/ -size +80M -a -size -1024M(在/etc下查詢大於80M並且小於100M的檔案或目錄)
-a: 兩個條件同時滿足
-o: 兩個條件滿足一個即可
六:按型別查詢:
find /boot/ -type f (查詢/boot目錄下的檔案)
find /boot/ -type d (查詢/boot目錄下的目錄)
find /boot/ -type l (查詢/boot目錄下的快捷方式)
七:對查詢結果進行操作
find /etc -name inittab -exec ls -l {} \; (查詢etc目錄下的inittab的檔案或目錄,並且對此檔案進行ls -l的操作。)
-exec 或者 -ok 都可以代表執行,但是-ok在執行時會詢問你是否要進行操作。 {} \ ;為固定格式。
find /etc -name init* -a -type d (查詢etc目錄下以init開始的目錄,注意:d代表目錄,f代表檔案,l代表軟連線)
find /etc -name init* -a -type d exec ls -l {} \; (查詢etc目錄下以init開始的目錄,並且對此檔案進行ls -l的操作。)
find . -inum 35426 -ok rm {} ; (查詢i節點為35426的檔案並刪除它)
##################################################################################################
八:linux實現快速查詢的命令:locate
locate 命令實現快速查詢,它的機制是在/var/lib/mlocate/mlocate.db 建立了一個這樣的資料庫,系統內的所有檔案會被定期的收入到這
個數據庫中,通過locate命令是在這個資料庫內進行查詢,所以速度特別的快。對於新建立的檔案或目錄,我們需要用命令:updatedb 來更新資料庫後
再用locate命令即可生效。另外,對於/tmp這個臨時目錄下的檔案或目錄,利用locate命令是無法查詢的。
locate -i paswd (查詢passwd這個檔案,不區分大小寫)
####################################################################################################
九:命令查詢:
/bin 和 /usr/bin 下的命令是所有使用者都能使用的命令, /sbin 和 /usr/sbin 下的命令是隻有root使用者才能使用的命令。
which + 命令 (搜尋命令所在目錄及別名資訊)
whereis + 命令 (搜尋命令所在的目錄和命令的幫助文件的絕對路徑)
###################################################################################################
十:命令的幫助:
man + 命令(檢視命令幫助文件,配置檔案資訊)
whatis + 命令(只看命令的幫助文件)
apropos + 配置檔案( 只看配置檔案資訊)
命令 + --help (獲取命令的選項資訊)
help + 命令 (檢視shell內建命令的幫助資訊。shell內建命令的特點是用which 和whereis找不到命令的路徑)