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࿱…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
