Linux 下面对一大堆 Log 日志文件,如何快速搜索
前言
在 Linux 系统中,尤其是开发、运维、排查问题的时候,我们经常会遇到一个文件夹里堆满了 .log 文件的情况。几百个、上千个日志文件,要手动一个一个打开查找,简直是噩梦!
今天分享几个简单高效的命令,让你几秒钟就能在海量日志中找到想要的内容。
1. 最推荐的方法:grep 递归搜索
这是大多数人最常用的方式,一条命令搞定:
grep -rHn --color=auto "关键词" --include="*.log" .
参数:
-r:递归搜索当前目录及所有子目录-H:显示文件名-n:显示匹配内容在第几行--color=auto:高亮显示关键词(特别好看)--include="*.log":只搜索.log结尾的文件
忽略大小写版本(推荐):
grep -riHn --color=auto "error" --include="*.log" .
2. 更灵活的方式:find + grep
当日志文件非常多时,这个组合更稳:
find . -name "*.log" -exec grep -Hn --color=auto "关键词" {} +
或者用 xargs 版本(速度稍快):
find . -name "*.log" | xargs grep -Hn "关键词"
3. 常用实用场景命令
-
只想看文件名(快速定位哪个文件有问题):
grep -rl "关键词" --include="*.log" . -
搜索多个关键词(比如 error 或 failed):
grep -rE --include="*.log" "error|failed|exception" . -
搜索最近7天修改的日志:
find . -name "*.log" -mtime -7 -exec grep -H "关键词" {} + -
只搜索当前目录,不进入子目录:
grep -Hn "关键词" *.log
4. 进阶神器:ripgrep(rg)
如果你经常要搜索大量日志,强烈建议安装 rg,速度比 grep 快好几倍!
安装命令:
# Ubuntu / Debian
sudo apt install ripgrep
# CentOS / Rocky / Alma
sudo dnf install ripgrep
使用方式超级简单:
rg "关键词" --type log
# 或指定目录
rg "error" /var/log/app/

浙公网安备 33010602011771号