天天看點

Linux下查找檔案的指令:locate 和 find

Linux下查找檔案的指令有兩個;locate 和find

一、Locate指令

非實時的,查找時根據全系統檔案資料庫進行的,模糊查找,簡單介紹下它的兩個選項:

#locate  -i       

//查找檔案的時候不區分大小寫 比如:locate  –i   test

#locate  -n      

//隻顯示查找結果的前N行     比如:locate  -n 5   test

Linux下查找檔案的指令:locate 和 find

二、Find指令

使用格式 :   find [指定查找目錄] [查找規則]  [查找完後可執行操作

查找路徑:預設為目前目錄

查找标準:預設為指定路徑下的所有檔案

查找到以後的處理操作:預設為顯示

1、[查找規則]

1.1 根據檔案名查找

#  -name   //根據檔案名查找(精确查找)

#  -iname  //根據檔案名查找,但是不區分大小寫

1.2 根據檔案所屬使用者群組來查找檔案

#  -user      //根據屬主來查找檔案

#  -group //根據屬組來查找檔案

1.3 -a  and  -o and  –not的使用

#  -a 連接配接兩個不同的條件(兩個條件必須同時滿足)

#  -o 連接配接兩個不同的條件(兩個條件滿足其一即可)

#  -not 對條件取反的

1.4 根據檔案時間戳的相關屬性來查找檔案

# -atime

# -mtime

# -ctime

# -amin

# -mmin

# -cmin

是以這裡atime,mtime,ctime就是分别對應的“最近一次通路時間”“最近一次内容修改時間”“最近一次屬性修改時間”,這裡的atime的機關指的是“天”,amin的機關是分鐘 

find . -mtime -2

在.下查最近兩天内改動過的檔案

find . -atime -1                                    

查1天之内被存取過的檔案

find . -mmin +60                                    

在.下查60分鐘前改動過的檔案

find . -amin +30                                    

查最近30分鐘前被存取過的檔案

1.5 根據檔案類型來查找檔案

# -type

f:普通檔案;d:目錄檔案;l:連結檔案;b:塊裝置檔案;c:字元裝置檔案;p:管道檔案;s:socket檔案

1.6 根據大小來查找檔案

# -size

#find  /tmp -size   2M           //查找在/tmp 目錄下等于2M的檔案

#find  /tmp -size  +2M           //查找在/tmp 目錄下大于2M的檔案

#find  /tmp -size  -2M           //查找在/tmp 目錄下小于2M的檔案

1.7 根據檔案權限查找檔案

# -perm

#find  . -perm 755           //在目前目錄下權限是755的檔案

#find  .  -perm +222         

//表示隻要有一類使用者(屬主,屬組,其他)的比對寫權限就行

#find  . -perm -222         

//表示必須所有類别使用者都滿足有寫權限

1.8 -nouser  and  -nogroup

#find  / -nogroup –a –nouser       在整個系統中查找既沒有屬主又沒有屬組的檔案(這樣的檔案通常是很危險的,作為系統工程師的我們應該及時清除掉)

2、[查找後的操作]

# -print   //預設情況下的動作

# -ls  //查找到後用ls 顯示出來

# -ok  [commend] //查找後執行指令的時候詢問使用者是否要執行

# -exec [commend]    //查找後執行指令的時候不詢問使用者,直接執行

這裡要注意{}的使用:替代查找到的檔案

#find  /tmp -atime  +30  –exec rm –rf {}  \; #删除查找到的超過30天沒有通路過檔案

我們也可以使用xargs來對查找到的檔案進一步操作find指令把比對到的檔案傳遞給xargs指令,而xargs指令每次隻擷取一部分檔案而不是全部,不像-exec選項那樣。這樣它可以先處理最先擷取的一部分檔案,然後是下一批,并如此繼續下去。  

Linux下查找檔案的指令:locate 和 find

三、其他查找指令

which: 定位一個指令的完整路徑,有可能會顯示出指令的别名

whereis:與which類似,而且會額外的給出給出該指令的man頁的完整路徑

whatis:将會在whatis資料庫中查詢file,當你想确認系統指令和重要的配置檔案的時候

Linux下查找檔案的指令:locate 和 find

繼續閱讀