find 命令未在子文件夹中找到字符串

find 命令未在子文件夹中找到字符串

我有一个类似这样的文件结构:

/apps/base/logs1
and 
/apps/base/logs2

logs1 和 logs2 文件夹均包含 .log 文件以及一些其他文件。

我正在尝试从 /apps 文件夹执行此操作,我希望能够找到所有包含字符串“ERROR”的文件(文件夹和子文件夹)。

此命令

 find . -name "*.log" -exec grep -H "ERROR" '{}' \; -print

运行良好,当我在文件夹 /apps/base/logs1 或 /apps/base/logs2 中时,直接在文件夹中显示所有 .log 文件。

但是当我切换到文件夹/apps时,此命令没有产生任何结果。

我是否遗漏了什么或需要更改什么?我尝试了其他几个选项,但无法使其工作。

任何帮助都将不胜感激。谢谢

答案1

好的,我得到了答案。由于我在企业环境中,因此创建了许多符号链接。我必须明确要求 find 命令也遵循符号链接。因此命令现在如下所示:

find -L /apps -name "*.log" -exec grep -H "ERROR" '{}' \; -print

问题在于,像 logs1 和 logs2 这样的目录是符号链接,因此 find 命令不会跟踪它们。-L 选项强制命令也查看符号链接。

相关内容