08_Linux文件查找技巧:locate、find 和 grep 命令详解
系列文章导航:01_Linux基础操作CentOS7学习笔记-CSDN博客
文章目录
- 1. `locate`命令
- 2. `grep`命令
- 3. `find`命令
在Linux系统中,文件查找是一项常见的任务。本文将详细介绍三种强大的文件查找命令:locate、find 和 grep,以及它们的使用场景和参数。
1. locate命令
locate命令的功能是用于快速查找文件或目录。与find命令进行全局搜索不同,locate命令是基于了数据文件(/var/lib/mlocate/mlocate.db) 进行的定点查找,由于缩小了搜索范围,因此快速快很多。
Linux系统需定期执行下updatedb命令对数据库文件进行更新,然后再使用locate命令进行查找,这样才会更加准确。
优点:基于数据库查询,效率非常高
缺点:查询时要确保数据库是最新的,否则查找可能不正确
第一安装时,updatedb更新生成数据文件 /var/lib/mlocate/mlocate.db
/etc/cron.daily/mlocate.cron --根据任务计划每天刷新数据库
注意:/tmp目录不做为updatedb数据库记录范围
安装与更新:
yum install -y mlocate
updatedb
语法格式:
locate [参数] 文件名
常用参数:
-b仅匹配文件名-c不输出文件名-d设置数据库所在目录-i忽略大小写-l限制最大查找数量-q静默执行模式-r使用正则表达式-S显示数据库的统计信息-w匹配完整的文件路径--help显示帮助信息--version显示版本信息
示例:
搜索带有指定关键词的文件:
[root@lianghui ~]# updatedb
[root@lianghui ~]# locate network
/dev/network_latency
/dev/network_throughput
………………省略部分输出信息………………
在指定的目录下,搜索带有指定关键词的文件:
[root@lianghui ~]# locate /etc/network
/etc/networks
locate “lesson” ----查找文件包含 lesson字符串的
# locate -r 'lessonoo.*' ( -r参数支持用正则通配符)
# locate -r "^/var/log" --- '^' 以xx开头 ,查找 以 /var/log开头的所有内容
# locate -r '\.iso$' 找以'.iso'结尾的文件 在正则‘.’表示任意一个字符,‘\’ 转义为 普通的 '.' 字符
2. grep命令
grep命令用于搜索文件中的文本模式。它支持正则表达式,可以根据用户的需求灵活地进行搜索。与之容易混淆的是egrep命令和fgrep命令。如果把grep命令当作是标准搜索命令,那么egrep则是扩展搜索命令,等价于grep -E命令,支持扩展的正则表达式。而fgrep则是快速搜索命令,等价于grep -F命令,不支持正则表达式,直接按照字符串内容进行匹配。
语法格式:
grep [参数] 文件名
常用参数:
-b显示匹配行距文件头部的偏移量-c只显示匹配的行数-E支持扩展正则表达式-F匹配固定字符串的内容-h搜索多文件时不显示文件名-i忽略关键词大小写-l只显示符合匹配条件的文件名-n显示所有匹配行及其行号-o显示匹配词距文件头部的偏移量-q静默执行模式-r递归搜索模式-s不显示没有匹配文本的错误信息-v反选,显示不包含匹配文本的所有行-w精准匹配整词-x精准匹配整行
示例:
grep "root" /etc/passwd # 在passwd文件中过滤包含关键字"root"的行
grep -i "root" /etc/passwd # 忽略大小写匹配关键字"root"
grep -n -i "root" /etc/passwd # 忽略大小写匹配关键字"root"并显示行号
grep -v "root" /etc/passwd # 反选,仅显示不包含关键字"root"的行
grep -v '^$' /etc/passwd # 过滤空行
grep '^root' /etc/passwd # 过滤以"root"开头的行
grep 'bash$' /etc/passwd # 过滤以"bash"结尾的行
grep -w "^root" /etc/passwd # 精确匹配以"root"开头的行
grep -vE "^#|^$" /etc/ssh/sshd_config # 过滤掉以"#"开头或空行的内容
grep -Rl "pthread_create" /usr/include/ # 在/usr/include目录下查找包含"pthread_create"的文件
grep -Rn "hello" /usr/share/ # 在/usr/share目录下查找包含"hello"的文件,并显示行号
3. find命令
find命令用于在指定目录下查找文件和目录。它可以根据文件名、大小、类型、权限等多种条件进行查找。
优点:真实磁盘扫描查找,查找方式丰富,支持衔接其他指令对查找到内容进而做其他操作。
缺点:慢,效率低
语法:
find 查找的路径 -查找的方式(name size type perm user group newer)
常用查找方式:
-
name:按照文件名查找文件
find / -name "*.jpg":在根目录下查找以.jpg结尾的文件find / ! -name "*.jpg":在根目录下查找不是以.jpg结尾的文件find / -name "*.jpg" -o -name "*.gif":在根目录下查找以.jpg或.gif结尾的文件find / -regex "ab[0-9]$":使用正则表达式匹配查找以ab开头后面跟一个数字结尾的文件
-
size:按照文件大小查找(常用单位c k M G)
find / -size 655k:在根目录下查找大小约为655k的文件find / -size -655k:在根目录下查找小于655k的文件find / -size +655k:在根目录下查找大于655k的文件find / -size +655k -size -6550k:在根目录下查找大小大于655k但小于6550k的文件
-
user:按照文件属主来查找文件
find / -user it01
-
group:按照文件所属组来查找文件
find / -group itgrp
-
type:按照文件类型查找(f d l s p c b)
find /dev/ -type b:查找块设备文件find /dev/ -type c:查找字符设备文件find /tmp -type f:查找普通文件find /tmp -type d:查找目录文件
-
perm:按照文件权限来查找文件
find / -perm 0700:查找权限等于0700的文件find / -perm 01777:查找权限等于01777的文件,例如tmp目录find / -perm u=rwx:查找用户权限为rwx的文件find / -perm /u=r:查找用户权限包含’r’的文件,不管其他权限find /usr/ -perm /u=s:查找用户包含s权限(冒险位的)的文件
-
newer file1:查找更改时间比文件file1新但比文件file2旧的文件
find /home/ -newer /home/a_f_8:查找比/home/a_f_8新的文件find /home/ ! -newer /home/a_f_8:查找比/home/a_f_8老的文件
-
mtime/atime/ctime:根据时间查找
find / -mtime 7:查找文件修改时间为7天的文件(刚好等于7天)find / -mtime -7:查找文件修改时间小于7天的文件find / -mtime +7:查找文件修改时间大于7天的文件find /home/ -mtime 0:查找今天修改的文件
-
-mount:指定只查找挂载的文件系统
find / -mount -size +10M
动作行为:
-
-ls:将查找的内容显示属性信息
find / -name "*.jpg" -ls:显示查找到的以.jpg结尾的文件的属性信息find /home/ -empty -ls:在/home目录下查找空的普通文件,并执行ls显示属性的动作
-
-delete:删除查找到的文件
find /home/ -empty -delete:在/home目录下查找空的普通文件,并删除它们
-
-exec:执行命令
find /sbin -type f -size +1M -exec ls -lh {} \;:在/sbin目录中查找文件类型为常规文件并且文件大小大于1M,再使用ls命令来查看找到的文件的属性find /sbin -type f -size +1M -exec cp {} /tmp \;:在/sbin目录中查找文件类型为常规文件并且文件大小大于1M,再使用cp命令将这些文件复制到/tmp目录下
-
-ok:执行命令,但依次询问
find /home/ -empty -ok mv {} / \;:在/home目录下查找空的普通文件,然后依次询问是否执行mv命令将它们移动到根目录下
示例:
find / -name "*.jpg"
通过这些命令,可以高效地在Linux系统中查找文件。无论是快速定位文件位置,还是深入搜索文件内容,这些工具一般都能满足需求。
相关文章:
08_Linux文件查找技巧:locate、find 和 grep 命令详解
系列文章导航:01_Linux基础操作CentOS7学习笔记-CSDN博客 文章目录 1. locate命令2. grep命令3. find命令 在Linux系统中,文件查找是一项常见的任务。本文将详细介绍三种强大的文件查找命令:locate、find 和 grep,以及它们的使用…...
JAVA 实验六
一: (1) 运行以上尟序并尣以上尟序尜尢一行尥码添加注解,将尟序保存尣e601.java (2) 以上尟序尣类变量是哪一个变量,类尠尞是哪一个尠尞,请找出类变量和类尠尞被使用尜语…...
电脑查不到IP地址是什么原因?怎么解决
在日常使用电脑的过程中,有时会遇到无法查询到电脑IP地址的情况,这可能会影响到网络的正常使用。本文将探讨电脑查不到IP地址的可能原因,并提供相应的解决方案。 一、原因分析 网络连接问题:首先,网络连接不稳定或…...
Axure重要元件三——中继器修改数据
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:中继器修改数据 主要内容:显示编辑内容、表格赋值、修改数据 应用场景:更新行、表单数据行修改 案例展示: 正文…...
应用层——电子邮件、MIME、简单网络管理协议SNMP
电子邮件 电子邮件系统采用三个主要构件组成:用户代理、邮件服务器、电子邮件所需的协议 我们可以简单的认为邮件服务器中有很多邮箱,还有用来缓存再转发邮件的缓存,发送方使用用户代理通过邮件发送协议。例如SMTP将邮件发送给发送方。 邮件服…...
我与C语言二周目邂逅vlog——8.编译和链接
C语言中的编译和链接过程详细总结 1. 概述 C 语言是一种经典的系统级编程语言,其开发过程包括多个阶段,其中最关键的就是编译和链接过程。编译和链接的理解对于掌握 C 语言程序的构建至关重要。在本篇文章中,我们将深入讲解 C 语言的编译和…...
Views Page 视图页面
下图中显示的 Views 页面允许自定义网格级别及其相应的 View。 Views (视图) 页面包含两个主要部分: 关卡设计师;请注意,其他设计器页面为在关卡设计器中选择的 View 提供设置;Properties (属性) 窗口&…...
Win10 IDEA远程连接HBase
Win10 IDEA远程连接HBase Win10 IDEA连接虚拟机中的Hadoop(HDFS) 关闭Hadoop和Hbase 如果已经关闭不需要走这一步 cd /usr/local/hbase bin/stop-hbase.sh cd /usr/local/hadoop ./sbin/stop-dfs.sh获取虚拟机的ip 虚拟机终端输入 ip a关闭虚拟机…...
1.centos 镜像
centos 它有官网的下载地址:https://vault.centos.org/ 选择想要的版本,我选择 centos7.8 进入到镜像目录 isos 选择 x86_64 选择想要的版本,我选择 CentOS-7-x86_64-DVD-2003.iso 安装就正常安装就行。我选择虚拟机安装。这个参考&…...
electron 操作 cookie
前言:在 Electron 中操作 Cookie 可以使用electron模块提供的session对象来实现。 一、获取 Cookie 通过defaultSession获取默认会话对象,然后调用cookies.get方法并传入要获取 Cookie 的 URL 地址,以获取该 URL 对应的 Cookie。 const el…...
黑马软件测试第一篇_Linux
Linux 操作系统 说明: 所有硬件设备组装完成后的第⼀一层软件, 能够使⽤用户使⽤用硬件设备的软件 即为操作系统 常见分类 桌⾯面操作系统: Windows/macOS/Linux移动端操作系统: Android(安卓)/iOS(苹果)服务器器操作系统: Linux/Windows Server嵌⼊入式操作系统: Android(底…...
npm run dev 启动前端项目的原理
在一个使用 Vite 构建工具的 Vue 项目中,当你运行 npm run dev 时,实际执行的命令是 vite。为了理解这一过程,我们需要了解几个关键点: package.json 文件中的 scripts 字段: "scripts": {"dev": "vite&…...
【2024年SCI一区新算法:黑翅鸢优化算法 】分布式电网故障定位
1 场景介绍 使用10节点网络 2 故障设置 分为单重故障和两重故障 %% 2 故障设置 %% 1)单重故障 I[1,-1,0,0,-1,-1,0,0,-1,-1]; % 区段1故障 节点状态实际编码(是否流过故障电流) % I[1,1,0,0,-1,-1,0,0,-1,-1]; % 区段2故障 % I[…...
PyTorch 中 12 种张量操作详解
创作不易,还请各位同学三连点赞!!收藏!!转发!!! 对于刚入门学习Python还找不到方向的小伙伴可以试试我的这份学习方法和籽料,免费自取!! PyTorc…...
雷池WAF自动化实现安全运营实操案例终极篇
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...
微信小程序实现canvas电子签名
一、先看效果 小程序canvas电子签名 二、文档 微信小程序canvas 组件文档 微信小程序canvas API文档 H5Canvas文档 三、分析 1、初始话Canvas容器 2、Canvas触摸事件,bindtouchstart(手指触摸动作开始)、bindtouchmove(手指触摸…...
【SpringCloud】Seata微服务事务
Seata微服务事务 分布式事务问题:本地事务分布式事务演示分布式事务问题:示例1 分布式事务理论CAP定理一致性可用性分区容错矛盾 Base理论解决分布式事务的思路 初识SeataSeata的架构部署TC服务微服务集成Seata引入依赖配置TC地址 其他服务 动手实践XA模…...
重新阅读《马说》,感悟“伯乐相马”背后的被选择与选择的大智慧
“初闻不识曲中意,再听已是曲终人”。世有伯乐,然后有千里马。千里马常有,而伯乐不常有。无论你是考研考公等考试大军中的一员,还是已步入社会的打工人或者领导,当你面临被人选择或者选择人时,皆可从《马说…...
深入拆解TomcatJetty(三)
深入拆解Tomcat&Jetty(三) 专栏地址:https://time.geekbang.org/column/intro/100027701 1 Tomcat组件生命周期 Tomcat如何如何实现一键式启停 Tomcat 架构图和请求处理流程如图所示: 对组件之间的关系进行分析,…...
MySQL 实现简单的性能优化
一:硬件优化 更高的网络带宽:在处理大规模的远程请求时可以提高MySQL服务器的响应速度; 更大的内存空间:有助于缓存更多的数据库数据,减少磁盘I/O操作,提高整体性能; 换用企业级SSD࿱…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
