2.3 搜索与查找——find 和 grep

2.3 Linux 文件搜索与内容查找

概述

Linux 中最常用的搜索工具为:

  • find:搜索文件或目录
  • grep:搜索文件内容

二者经常配合使用,实现从文件定位到内容检索的完整搜索流程。


find 文件搜索

常用搜索条件

按名称搜索:

1
2
find . -name "*.txt"
find . -iname "*.txt"

按类型搜索:

1
2
3
find . -type f
find . -type d
find . -type l

按大小搜索:

1
2
find / -type f -size +100M
find . -size -10k

按时间搜索:

1
2
find . -mtime -7
find . -mtime +30

条件组合

与(AND):

1
find . -type f -size +10M

或(OR):

1
find . -name "*.log" -o -name "*.txt"

非(NOT):

1
find . ! -name "*.txt"

执行操作

批量删除:

1
find . -name "*.tmp" -exec rm {} \;

推荐高效写法:

1
find . -name "*.tmp" -exec rm {} +

grep 内容搜索

常用选项

忽略大小写:

1
grep -i "error" logfile

显示行号:

1
grep -n "error" logfile

反向匹配:

1
grep -v "debug" logfile

递归搜索目录:

1
grep -r "localhost" /etc

统计匹配数量:

1
grep -c "error" logfile

显示匹配文件:

1
grep -rl "password" /etc

常用正则表达式

表达式 说明
. 任意单个字符
* 前一个字符出现 0 次或多次
.* 任意长度字符
^ 行首
$ 行尾
[0-9] 数字
[a-z] 小写字母
{n} 重复 n 次

示例:

1
2
3
grep -E "^root" /etc/passwd
grep -E "[0-9]+" file.txt
grep -E "bash$" /etc/passwd

find 与 grep 配合使用

查找配置文件并搜索内容:

1
find /etc -name "*.conf" -exec grep -H "Listen" {} \;

查找包含关键字的文件:

1
grep -rl "password" /etc

统计 Python 代码行数:

1
find . -name "*.py" -exec cat {} \; | wc -l

使用注意事项

权限问题

搜索系统目录时可能出现权限错误:

1
find / -name "*.conf" 2>/dev/null

2>/dev/null 用于隐藏错误输出。

通配符引用

建议使用引号避免 Shell 提前展开:

1
find . -name "*.log"

find 与 grep 区别

命令 搜索对象
find 文件、目录属性
grep 文件内容

通常先使用 find 定位文件,再使用 grep 搜索内容。


2.3 搜索与查找——find 和 grep
https://blog.sh462li.top/2026/05/25/Linux_learn/2.3 搜索与查找——find-和-grep/
作者
SHAO
发布于
2026年5月25日
许可协议