对于 Linux 服务器来说, grep 可以说是最常用的命令了。我们来看看如何使用它来检索目录和子目录中所有文件的内容,找到你要寻找的字符串。
问题是这样的,服务器上某个站点用的是一个商业 cms 系统,包含了很多插件和主题等等,某天,发现进入后台变得异常卡顿,发现是由于某个插件或者工具加载了某个 cdn 的某个 css 字体文件,而这个文件当前是无法访问的状态,所以需要找出具体是在哪里引入了这个文件,将其 cdn 地址替换即可。
我们要如何在一个站点目录下所有的代码中找到哪里引入了那个文件呢?
直接在Linux服务器上只需要 grep 命令即可。
进入站点目录下,检索命令:
grep -rnR "fawesome" *
命令说明:
* : 表示当前目录所有文件,也可以是某个文件名,或者某种后缀的文件
-r 是递归查找
-n 是显示行号
-R 查找所有文件包含子目录
-i 忽略大小写
-l 只列出匹配的文件名
-L 列出不匹配的文件名
-w 只匹配整个单词,而不是字符串的一部分(匹配 hello,不匹配helloo)
参考 grep --help
linux 下 grep 的查找效率很高,检索结果:
结果中列出来,在哪个文件的哪一行出现了查找的字符串,是不是比想象中简单很多。

