linux 下的搜索命令:查找相关的命令
-------------------------------------------
grep : 查看文件的内容,在文件中查询一个关键字,即搜索字符串的命令
grep 是包含匹配,不是完全的精确匹配,特别适合找内容
语法: grep [-option] 需要搜索的关键字 文件名
参数: -n ---- 连行号一起显示
-c ---- 统计有几行
-i ---- 忽略大小写(一般用的少)
-v ---- 排除指定的字符,取反,查找出来的内容是搜索条件以外的所有内容
[root@localhostTEST ~]# grep -n "services" anaconda-ks.cfg
22:# System services
--------------------------------------------------------------------------------------
find :用于查找文件,适合找文件使用,但是一定要注意查找的范围,这是linux中最强大的搜索命令
语法:find [path][-option] ---- find [搜索范围][搜索文件]
参数: -name 文件名 ---- 按照文件名搜索
缺点:慢,原因就是在范围内遍历所有的文件名,所以实际工作中,避免大范围搜索,很耗资源
[root@localhostTEST ~]# find / -name program.log
/var/log/anaconda/program.log
/tmp/program.log
-------------------------------------------------------------------------------------------------------------
locate: 用来查询文件,按照文件名查找,消耗资源少,比 find -name 快原因是找的linux的数据库,但是
linux 数据库每天自动更新一次,所以刚创建的文件找不到,手动更新数据库,即可以。
备注:linux 的数据库 /var/lib/mlocate
[root@localhostTEST home]# locate TT12345 -- 新建文件
[root@localhostTEST home]# find /home -name TT12345
/home/test111/TT12345
[root@localhostTEST home]# updatedb -- 手动更新数据库
[root@localhostTEST home]# locate TT12345 --- 再次查找,就出来了
/home/test111/TT12345
[root@localhostTEST home]#