1、文件搜索命令locate(定位,查找)
最大的好處,速度快
格式: locate 文件名
返回文件的路徑
搜索方式:在后臺(tái)數(shù)據(jù)庫中按照文件名搜索,每天更新一次
因此新建的文件往往要第二天才能搜索出來
但是也可以強(qiáng)行更新數(shù)據(jù)庫 執(zhí)行命令updatedb既可以
數(shù)據(jù)庫的位置 /var/lib/mlocate(版本不同位置不同)
搜索的配置文件:/etc/updatedb.conf 其中指定有些目錄
不參與搜索 比如/etc/temp
缺點(diǎn):只可以按照文件名來搜索
例子:locate javatest
2、命令搜索命令whereis 與which
whereis搜索命令的所在位置,不搜索文件
-b 只查看可執(zhí)行文件所在位置
-m 只查看幫助文檔所在位置
which 搜索命令的所在位置,還可以查看別名linux常用命令,不搜索文件
兩種搜索在path環(huán)境路徑下搜索 echo $PATH
例子:whereis ls which ls
3、find(全部搜索,每一個(gè)文件名)
功能非常的強(qiáng)大,但是比較耗費(fèi)資源
因此,盡量避免大范圍的查詢
格式:find 搜索范圍 搜索條件
find / -name test 在根目錄下搜索
搜索的內(nèi)容要和文件名一模一樣
如果要搜更多 則需要模糊匹配(*可以實(shí)現(xiàn))匹配內(nèi)容寫在""中
*匹配任意內(nèi)容(多個(gè)字符)
?匹配任意單個(gè)字符
[]匹配中括號(hào)中的任意一個(gè)字符
選項(xiàng)參數(shù):
-name 按照文件名
-iname 文件名不區(qū)分大小寫
-user 按照所有者搜索 find /root -nouser 沒有所有者文件
內(nèi)核產(chǎn)生linux常用命令,外來文件之外的所有文件都需要有所有者
-mtime 查找指定時(shí)間修改的文件
-atime 查找指定時(shí)間被訪問文件
-ctime 查找指定時(shí)間文件屬性改變的文件
參數(shù)-10 10天之內(nèi) +10 10天之前 10第10天(注意都是過去時(shí))
-size 按照文件大小
find . -size +25k(+25k大于25k 兆是大寫M 不寫單位表示數(shù)據(jù)塊(扇區(qū)數(shù)據(jù)塊512byte).標(biāo)識(shí)當(dāng)前目錄)
-inum 按照指定的i節(jié)點(diǎn)來搜索文件
-a (and) 邏輯與 兩個(gè)條件都滿足
-o (or) 邏輯或
-exec(中間添加第二條命令比如 ls,rm -rf) {} \; 命令1的結(jié)果讓命令2來處理
例子:
find . -name test
find . -name test.gz
find . -name "*" 全部
find . -name "*.gz" 該目錄下全部以gz結(jié)尾文件
find . -atime -10
find . -size -10k 10kb以下
find . -size -100M 10M以上
find . -size -10k -a -atime -10
find . -size -10k -a -atime +10
find . -name "*" -a -size -10k -exec ls -lhi {} \;(\前面一定要有空格)
4、grep
格式:grep 選項(xiàng) 字符串 文件名 在文件中查找包含關(guān)鍵字的字符串行
匹配需要正則表達(dá)式匹配
例子:grep "size" 文件名
-v 取反
搜索匹配是文件名 則用通配符 通配符是完全匹配
搜索文件中的內(nèi)容 則使用正則表達(dá)式包含匹配
例子:
grep "log" install.log
find與grep的區(qū)別
find是查找匹配文件
grep是文件中匹配字符串