当前位置: 首页 > news >正文

Linux学习之路(三)搜索命令

1.文件搜索命令locate

2.命令搜索命令whereis与which

3.字符串搜索命令grep

4.find命令与grep命令的区别

 

 

locate命令相对于find命令搜索非常快,find命令在哪个目录下使用就在该目录下遍历一遍,非常消耗资源。

locate命令格式

locate 文件名

在后台数据库中按文件名搜索,搜索速度非常更快。locate不能搜索新建的文件,原因为locate命令不是直接在系统当中去搜索,而是在/var/lib/mloacte中去搜索。/var/lib/mlocate是locate命令所搜索的后台数据库。执行locate时,在数据库中搜索,不需要遍历整个操作系统,所以搜索文件时速度非常快。但是mlocate数据库不是实时更新,默认一天一更新,所以新建文件时,mlocate数据库并没有更新,locate该文件时没有能够搜索到,等到它更新时就能搜索到了。除此之外,还可以强制更新mlocate数据库,用命令updatedb命令来强制更新数据库。不同版本的Linux中locate命令的数据库mlocate的命名不同,有的是locatedb,有的是slocated。具体用locate去locate

自身。

缺点:只能按文件名搜索,功能单一。

locate搜索时是按照/etc/updatedb.conf配置文件来搜索的

PRUNE_BIND_MOUNTS="yes"         #开启搜索限制
PRNEFS =                        #搜索时,不搜索的文件系统
PRUNENAMES =                    #搜索时。不搜索的文件类型
PRUNEPATHS =                    #搜索时,不搜索的路径

当更新了数据库后仍不能搜索到文件时,可以去看一下/etc/updatedb.conf里面是不是存在排除的规则。

2.命令的搜索命令whereis与which

搜索命令的命令whereis

搜索命令所在路径及帮助文档所在位置

选项:

-b  只查找可执行文件

-m  只查找帮助文件

只能搜索系统命令,不能搜索我们创建的文件

搜索命令的命令which

which 文件名

搜索命令所在的路径及别名        #但是并不是所有命令都有别名,如系统shell命令。which只能搜索外部安装外部外来命令。

当我们执行一个外部命令时,首先在$PATH路径下去找该命令,没有就报错。如果有就不用加绝对路径,没有就要加绝对路径,否则就放进$PATH路径下来定义搜索环境。

 

PATH环境变量

PATH环境变量:定义的是系统搜索命令的路径

 

3.文件搜索命令find

 find命令

find [搜索范围] [搜索条件]        #搜索文件

注意

#避免大范围搜索,会非常耗费系统资源

#场面是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配

 

 Linux中的通配符

*  匹配任意内容

?  匹配任意一个字符

[]  匹配任意一个中括号内的字符

find /root -iname install.log    #不区分大小写
find /root -user root    #按照所有者搜索
find /root -nouser        #查找没有所有者的文件

find /var/log/ -mtime +10      #查找10天前修改的文件

-10    10天内修改的文件

10    10天当天修改的文件

+10    10天前修改的文件

 

atime  文件访问时间

ctime  改变文件属性

mtime  修改文件内容

 

find . -size 25k    #查找当前目录下大小是25KB的文件

-25k  小于25KB的文件

25K  等于25KB的文件

+25  大于25KB的文件

kb要小写,MB要大写

find . -size +2M

 

find . -inum  262626  #查找inode号是262626的文件

 

find /etc -size +20k -a -size -50k  #查找/etc目录下,大于20KB并且小于50KB的文件

-a  and  逻辑与,两个条件都满足

-o  or  逻辑或,两个条件满足一个即可

 

find  /etc  -size +20k -a -size -50k -exec  ls  -lh   {}  \;    #查找/etc目录下,大于20KB并且小于50KB的文件,并显示详细信息

#-exec/-ok  命令{}\;  对搜索结果执行操作 

 

4.搜索字符串命令grep

.grep  [选项]  字符串  文件名

#在文件当中匹配符合条件的字符串

选项:

  -i  忽略大小写

  -v  排除指定字符串

 

find命令与grep命令的区别

.find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符是完全匹配。

.grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达工时包含匹配      

 

转载于:https://www.cnblogs.com/RzCong/p/6639967.html

相关文章:

  • SQL--left join ,inner join, right jion, Limit
  • [译]持续集成认证(ContinuousIntegrationCertification)
  • linux ps -aux各列含义
  • mysql mpm
  • Ambari Metrics接收数据问题
  • reids 数据库学习
  • Android系统源码研究(一)
  • Node + FFmpeg 实现Canvas动画导出视频
  • 数据库架构设计思路
  • 前端学习 -- Css -- 文本标签
  • Android开发专业名词及工具概述
  • 斐波那契数列——摘自搜狗百科
  • linux磁盘管理命令
  • 数据挖掘之数据准备——丢失数据
  • 今天加入云溪社区啦
  • ----------
  • $translatePartialLoader加载失败及解决方式
  • @jsonView过滤属性
  • 08.Android之View事件问题
  • emacs初体验
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Sass Day-01
  • text-decoration与color属性
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 如何在GitHub上创建个人博客
  • 使用Swoole加速Laravel(正式环境中)
  • 使用权重正则化较少模型过拟合
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • # Maven错误Error executing Maven
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (16)Reactor的测试——响应式Spring的道法术器
  • (day6) 319. 灯泡开关
  • (windows2012共享文件夹和防火墙设置
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (附源码)计算机毕业设计高校学生选课系统
  • (力扣)1314.矩阵区域和
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (一)插入排序
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET : 在VS2008中计算代码度量值
  • .NET 8.0 中有哪些新的变化?
  • .net 生成二级域名
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET6 命令行启动及发布单个Exe文件
  • .NetCore部署微服务(二)
  • .NET使用存储过程实现对数据库的增删改查
  • .Net下的签名与混淆
  • .NET中 MVC 工厂模式浅析
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /3GB和/USERVA开关