1、locate 指令格式
locate用法
locate 檔案名
在linux指定的資料庫中按檔案名搜尋,搜尋速度特别快
資料庫位址
/var/lib/mlocate
locate
指令搜尋的檔案名全都存在該目錄下
mlocate
資料庫并不會實時更新,而是每天更新一次
更新資料庫指令(使用該指令随時更新資料庫)
updatedb
locate指令配置(使用locate搜尋不生效應該就是該配置的原因)
- 該配置檔案存在于:
/etc/updatedb.conf
-
//PRUNE_BIND_MOUNTS = "YES"
代表開啟搜尋限制yes
-
// 搜尋時,不搜尋的檔案系統PRUNEFS =
-
// 搜尋時,不搜尋的檔案類型PRUNENAMES =
-
// 搜尋時,不搜尋的路徑PRUNEPATHS =
2、搜尋指令的指令whereis與which
whereis用法(該搜尋隻能搜尋指令)
whereis 指令名
搜尋指令所在路徑及幫助文檔所在位置
- 選項
-
-b
隻查找可執行檔案
-
-m
隻查找幫助檔案
which用法(該搜尋隻能搜尋指令)
which 指令名
搜尋指令所在路徑及别名
PATH環境指令
如果想直接使用指令,則需要在PATH中填寫該指令所在的目錄
PATH環境變量: 定義的是系統搜尋指令的路徑
輸入
echo $PATH
,即可檢視
$PATH
中有哪些目錄,如下例:
root@ubuntu:/$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
3、檔案搜尋指令 find
find 用法
find [搜尋範圍] [搜尋條件]
find 舉例
root@ubuntu:/$ find / -name .log
/home/ceshi/.log
注:避免大範圍搜尋,因為搜尋非常耗費系統資源
Linux中的通配符
使用find搜尋時,隻知道檔案的其中一個字元,那麼就可以使用通配符,可以使你更容易搜尋到檔案
-
*
比對任意内容
-
?
比對任意一個字元
-
[]
比對任意一個中括号内的字元
find 擴充
-
// 不區分大小寫find /home -iname install.log
-
// 按照所有者搜尋find /home -user root
-
// 查找沒有所有者的檔案find /home -nouser
-
// 查找10天前修改的檔案find /home/log/ -mtime +10
-
檔案通路時間atime
-
改變檔案屬性ctime
-
修改檔案内容mtime
-
10天内修改檔案 |-10
10天當天修改的檔案 |10
10天前修改的檔案+10
-
-
或者find /etc -size +25k
// 查找檔案大小大于25k或者2M的檔案find /etc -size +2M
- 這裡
必須是小寫,k
必須是大寫M
- 其餘用法都跟上列一樣
- 這裡
-
// 查找i節點是262422的檔案find /etc inum 262422
-
// 查找/etc/目錄下,大于20kb并且小于50kb的檔案find /etc -size +20k -a -size -50k
-
// 邏輯與,兩個條件都滿足-a and
-
// 邏輯或,兩個條件滿足一個即可-o or
-
-
// 查找/etc/目錄下,大于20kb并且小于50kb的檔案,并顯示詳細資訊find /etc -size +20k -a -size -50k -exec ls -lh {} \;
-
#指令#-exec
// 對搜尋結果執行操作{} \;
-
4、搜尋字元串指令grep
grep 用法
grep [選項] 字元串 檔案名
在檔案當中比對符合條件的字元串
- 選項
-
忽略大小寫-i
-
排除指定字元串-v
grep 舉例
查找123.log檔案裡包含”a”的部分
root@ubuntu:/home/ceshi$ grep "a" .log
casca
a
as
find指令 和 grep指令的差別
-
指令:在系統中搜尋符合條件的檔案名,如果需要比對,就得使用通配符,通配符是完全比對find
-
指令:在檔案中搜尋符合條件的字元串,如果需要比對,使用正規表達式進行比對,正規表達式包含比對grep