find 和 grep 命令 📅 发布时间:2026/7/3 13:01:32 👁️ 浏览次数: 目录一、find —— 查找文件1. 基本概念2. 命令格式3. 常用查找方式3.1 按文件名查找-name示例 1精确查找文件示例 2使用通配符查找示例 3查找目录或文件示例 4默认当前路径3.2 按文件大小查找-size3.3 按修改时间查找-mtime示例3.4 按文件类型查找-type示例3.5 组合条件查找示例4. 对找到的文件执行操作-exec示例删除所有 .tmp 文件二、grep —— 查找文件内容1. 基本概念2. 命令格式3. 常用选项4. 基本用法示例示例 1在单个文件中查找示例 2递归查找所有文件示例 3忽略大小写示例 4全字匹配示例 5显示不包含匹配模式的行5. 结合管道使用示例 1查看历史命令中包含 find 的示例 2在 grep 的结果中再次搜索链式过滤示例 3统计匹配行数6. 常用正则表达式元字符扩展示例三、find 与 grep 的对比总结示例查找所有 .c 文件中包含 main 的行在 Linux 系统中随着使用时间的增长文件会越来越多。当我们需要快速定位某个文件或者在海量代码中查找某个特定的字符串时就需要用到查找命令。本节将详细介绍两个最常用的查找命令find查找文件和grep查找文件内容。一、find —— 查找文件1. 基本概念find命令用于在指定目录下查找符合条件的文件或目录。它的工作方式类似于 Windows 中的文件搜索但功能更强大、更灵活。2. 命令格式bash find [查找路径] [选项] [查找条件]查找路径告诉find从哪个目录开始搜索。如果不指定默认为当前目录.。选项指定按照什么方式查找例如按文件名、按文件大小、按修改时间等。查找条件具体的查找内容比如文件名、大小值等。3. 常用查找方式3.1 按文件名查找-name这是最常用的方式。使用-name选项后面跟要查找的文件名可以使用通配符*、?等。示例 1精确查找文件bash $ find /home/book/dira/ -name test1.txt说明在/home/book/dira/目录下查找名为test1.txt的文件。如果找到会输出该文件的完整路径如果没找到则没有任何输出也不会报错。示例 2使用通配符查找bash $ find /home/book/dira/ -name *.txt说明查找/home/book/dira/目录下所有以.txt结尾的文件。*代表任意长度的任意字符。示例 3查找目录或文件bash $ find /home/book/dira/ -name dira说明查找名为dira的文件或目录。注意如果dira是一个目录它也会被列出。示例 4默认当前路径bash $ find -name *.txt # 相当于 find . -name *.txt说明如果不指定路径find默认从当前目录开始查找。.代表当前目录。3.2 按文件大小查找-sizebash $ find /home/book -size 10M # 查找大于 10MB 的文件 $ find /home/book -size -1k # 查找小于 1KB 的文件说明表示大于-表示小于。单位c字节、kKB、MMB、GGB。3.3 按修改时间查找-mtime-mtime n查找 n 天前当天修改过的文件。-mtime n查找 n 天之前修改过的文件不包括 n 天当天。-mtime -n查找 n 天之内修改过的文件包括 n 天当天。示例bash $ find /home/book -mtime -2 # 查找 /home/book 下两天内有变动的文件 $ find /home/book -mtime 7 # 查找 /home/book 下超过 7 天未修改的文件类似选项还有-amin n按访问时间分钟-cmin n按状态改变时间分钟-mmin n按修改时间分钟3.4 按文件类型查找-type-type f普通文件-type d目录-type l符号链接示例bash $ find /home/book -type d -name project # 查找名为 project 的目录3.5 组合条件查找可以使用逻辑运算符组合多个条件-a或-and与默认-o或-or或!或-not非示例bash $ find /home/book -name *.c -o -name *.h # 查找所有 .c 或 .h 文件 $ find /home/book ! -name *.txt # 查找所有不以 .txt 结尾的文件4. 对找到的文件执行操作-execfind的强大之处在于可以对找到的文件执行后续命令。格式为bash find ... -exec 命令 {} \;{}代表找到的文件名\;表示命令结束必须转义分号示例删除所有 .tmp 文件bash $ find /home/book -name *.tmp -exec rm {} \;二、grep —— 查找文件内容1. 基本概念grep是一个强大的文本搜索工具它可以在一个或多个文件中查找包含指定字符串的行并打印出来。它支持正则表达式可以进行非常复杂的模式匹配。2. 命令格式bash grep [选项] [查找模式] [文件名...]查找模式要搜索的字符串或正则表达式。文件名要搜索的目标文件。可以使用通配符如*表示当前目录下的所有文件。3. 常用选项选项含义-r或-R递归搜索子目录-n显示匹配行的行号-i忽略大小写-w全字匹配只匹配整个单词而不是单词的一部分-v反向选择显示不包含匹配模式的行-c只显示匹配的行数-l只显示包含匹配内容的文件名不显示具体行-H显示文件名默认在搜索多个文件时显示--color高亮显示匹配的字符串很多系统默认已设置别名4. 基本用法示例假设我们在~/test目录下有两个文件test1.txt内容text aaa AAAAAA abc abcabcabc cbacbacba match_pattern nand-erasetest2.txt内容text bbb ABC hello world示例 1在单个文件中查找bash $ grep -n abc test1.txt 3:abc 4:abcabcabc-n显示行号输出格式为行号:内容。这里找到第 3 行和第 4 行包含abc。示例 2递归查找所有文件bash $ grep -rn abc * test1.txt:3:abc test1.txt:4:abcabcabc-r递归查找当前目录包括子目录下的所有文件。输出会显示文件名、行号和内容。示例 3忽略大小写bash $ grep -rni abc * test1.txt:3:abc test1.txt:4:abcabcabc test2.txt:2:ABC加上-i后ABC也被匹配到了。示例 4全字匹配bash $ grep -rnw abc * test1.txt:3:abc-w要求匹配整个单词所以abcabcabc不被匹配因为它不是独立的单词被其他字符包围。示例 5显示不包含匹配模式的行bash $ grep -v abc test1.txt aaa AAAAAA cbacbacba match_pattern nand-erase显示所有不包含abc的行。5. 结合管道使用grep经常与管道|结合使用用于过滤其他命令的输出。示例 1查看历史命令中包含 find 的bash $ history | grep find示例 2在grep的结果中再次搜索链式过滤bash $ grep -rn ABC * | grep \.h第一个grep查找所有包含ABC的行递归、显示行号。管道将结果传给第二个grep第二个grep再从中筛选出包含.h的行注意.需要转义表示字面点号。这个命令常用于查找包含某个宏或函数定义的头文件。示例 3统计匹配行数bash $ grep -rc abc * # 显示每个文件中匹配的行数 test1.txt:2 test2.txt:06. 常用正则表达式元字符扩展grep默认使用基本正则表达式如果使用-E选项则启用扩展正则表达式功能更强。常见元字符.匹配任意单个字符*匹配前一个字符零次或多次^匹配行首$匹配行尾[abc]匹配 a、b、c 中的任意一个[^abc]匹配除 a、b、c 外的任意字符\{n\}匹配前一个字符恰好 n 次基本正则需转义大括号示例bash $ grep ^abc test1.txt # 查找以 abc 开头的行 $ grep abc$ test1.txt # 查找以 abc 结尾的行 $ grep -E abc{2} test1.txt # 查找 abcc使用 -E 启用扩展正则三、find 与 grep 的对比总结命令功能常用场景find查找文件或目录需要根据文件名、大小、时间等属性定位文件时使用grep查找文件中的内容需要搜索文件内部是否包含特定字符串时使用二者经常结合使用先用find找到需要的文件再用grep在这些文件中搜索内容。示例查找所有.c文件中包含main的行bash $ find . -name *.c -exec grep -n main {} \;或者使用xargsbash $ find . -name *.c | xargs grep -n main
SpringBoot校园新闻网站毕设源码免费项目 基于 SpringBoot 框架开发的校园新闻网站源码项目。该系统采用前后端分离架构,支持新闻发布、用户互动、留言反馈等核心功能,适用于高校宣传部门、学生组织或教育类网站的建设需求。无论是作为学习案例还是实际部署使用,本项目都具备良好的可… 2026/5/17 11:52:40
windows安装openclaw流程 一.前置条件: 1.安装npm 2.安装git,需要到git页面配置ssh(ssh key自己搜索生成方式) 二.安装openclaw 1.安装openclaw npm install -g openclawlatest --omitoptional --legacy-peer-deps --omitoptional --legacy-peer-deps… 2026/7/3 4:39:54
1. OpenClaw配合Ollama cloud环境搭建 1. 安装规划 家里的电脑有些年头了,为了方便测试,我主备安装windows平台,然后配置ollama搭建模型,由于家里的电脑显卡不给力,只能跑deepseek 7b的版本,但是处理速度特别慢,效果不理想。我们… 2026/5/17 11:52:35
暗黑2存档编辑器d2s-editor终极指南:打造完美单机游戏体验 暗黑2存档编辑器d2s-editor终极指南:打造完美单机游戏体验 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2单机模式的角色培养而烦恼吗?想要快速体验各种强力装备和完美属性配置吗&… 2026/7/3 12:59:55
嵌入式系统中EEPROM存储方案设计与优化实践 1. 项目背景与硬件选型解析 在嵌入式系统开发中,持久化存储用户配置数据是个经典需求。我最近在一个智能家居控制面板项目中,选择了M95M04 EEPROM芯片与PIC18F46K20微控制器的组合方案。这个搭配在成本、性能和可靠性之间取得了很好的平衡。 M95M04是ST… 2026/7/3 12:59:55
【Springboot毕设全套源码+文档】基于springboot培训机构课后服务平台小程序的设计与实现(丰富项目+远程调试+讲解+定制) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/3 12:59:55
【JAVA毕设源码分享】基于springboot培训机构课后服务平台小程序的设计与实现(程序+文档+代码讲解+一条龙定制) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/3 12:59:55
具身智能的“ChatGPT时刻”:TVA技术演进与前景展望(3) 前沿技术介绍:AI智能体视觉(TVA,Transformer-based Vision Agent)是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术,属于“物理AI” 领域的一种全新技术形态,完成了从“虚拟世界”到“… 2026/7/3 12:57:52
ClickHouse EXPLAIN 完全实战指南:AST / SYNTAX / QUERY TREE / PLAN / PIPELINE 一文搞懂 摘要:ClickHouse 提供 5 种 EXPLAIN 类型,分别对应查询编译的不同阶段。很多同学只会 EXPLAIN PLAN,遇到「SQL 被改写了」「优化器做了什么」就无从下手。本文按可上手操作的方式,逐类型讲解用法、输出解读和排查场景,… 2026/7/3 12:57:52
如何5分钟快速上手XUnity.AutoTranslator:打破语言障碍的游戏翻译神器终极指南 如何5分钟快速上手XUnity.AutoTranslator:打破语言障碍的游戏翻译神器终极指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾经因为语言障碍而错过精彩的游戏剧情?面对日… 2026/7/3 0:01:58
3种策略管理Playnite便携版:从基础部署到高级维护的完整指南 3种策略管理Playnite便携版:从基础部署到高级维护的完整指南 【免费下载链接】Playnite Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games. 项目地址… 2026/7/3 0:05:59
2026江苏三维扫描仪定制厂家:一条很现实的分水岭——“会用”和“用对” 在江苏制造业的三维扫描项目里,有一个很容易被忽略的分界线: 👉 会用设备,不等于用对设备。 尤其在江苏GOM三维扫描仪定制厂家、江苏蔡司3D扫描仪定制厂家项目中,这条分界线会直接决定系统最终是“工具”,还… 2026/7/3 0:07:59