如何在 Ubuntu 上按内容搜索

如何在 Ubuntu 上按内容搜索

我想按内容搜索整个服务器。(文本文件)

当我尝试 grep -rl "text here" 时,它会冻结。

你会怎么做?

通常需要多长时间?

答案1

使用该命令时,您需要指定一个文件grep。使用您正在使用的命令,您将在标准输入中进行搜索...

尝试grep -r "test" directory

答案2

find / -name "*.txt" -exec grep "text here" {} \; -print 2>/dev/null

用人类的语言可以解释为:

  1. 寻找
  2. 从...开始 /
  3. 在所有名为 *.txt 的文件中(引号是为了绕过 shell 解释)
  4. 根据结果​​,执行以下操作
  5. grep“在这里测试”
  6. 在文件 {} 中
  7. exec 结束 (\;) 转义语句结束
  8. 打印匹配的文件
  9. 在接收器中重定向错误消息(因为您可能不是root,否则只需sudo即可)。

答案3

如果你忘记指定要搜索的文件类型,
请确保以 root 身份登录

cd /
grep -rl "text here" *  > /tmp/match.txt

这将花费很长时间,您可以稍后通过检查 /tmp/match.txt 来收集结果

答案4

以下命令搜索当前工作目录及其所有子目录中所有以 .txt 结尾的文件:

find . -type f -name '*.txt' -exec grep -Hn "text here" {} \;

相关内容