這一部分主要學習了如何搜尋檔案。
常用的檔案搜尋指令有locate,which,whereis和find, 下面依次看看
locate是通過一個資料庫來利用名字搜尋。他的速度很快,不過資料庫更新比較慢,一周才更新一次,是以最新的資訊可能找不到,需要手動更新updatedb之後才能查到
例如
which 和 whereis 一般用來搜尋某個指令所在的路徑
下面重點來看看 find
find 的基本文法格式是 find 目錄 -屬性 值
如果不設定目錄,預設為目前目錄
屬性主要通過以下8個方面來搜尋
-name
-size
-user/group
-uid/gid
-perm
-type
-ctime/cmin
-newer
例1: 通過-name 名字來搜尋 ,如果要忽略大小寫,可以用-i, 這和grep一樣
例2: 通過- size 來搜尋,首先建立4個塊檔案,分别是1m,2m,3m,4m
+2m代表2m以上,-4m則表示4m以下
-a 表示 and(和), -o 表示or (或者),可以利用這種方式設定多組條件
注意,find的預設搜尋是遞歸的搜尋,會搜尋目前目錄下的所有子目錄,是以他連子目錄test也顯示了
例3 通過 -user/group 搜尋,也可以通過-uid/gid 搜尋
例4: 通過 -perm 進行權限的搜尋,注意-表示所有的條件必須全部滿足;而/表示u,g,o滿足任何一項的條件即可
例5: 通過-type 搜尋類型,比如我建立了一個軟連接配接,可以指定l來搜尋
例6: 通過時間來搜尋,比如建立時間超過25分鐘的檔案
例7: 通過檔案的比較來搜尋,比如比bb2更新的檔案
find還有兩種常見的組合用法,查找後執行指令 -exec 指令 {} \ ,那個{}代表的是查找的結果;或者是通過管道把結果作為參數給 xargs 後面的指令使用
例8: 輸出查找檔案的屬性,兩種方式都是可以的