grep警告:递归目录循环

grep警告:递归目录循环,grep,Grep,我正在递归地搜索某个位置,例如/cygdrive/c/dev/maindir/dir/ 目录结构中有一个循环,即有一个链接../maindir/dir/loopedDir/loopedDir指向../maindir/dir/loopedDir 当我跑步时: grep --exclude="/cygdrive/c/dev/maindir/dir/loopedDir/loopedDir" 'myPattern' -R /cygdrive/c/dev/maindir/dir/ …它工作正常,就像预期

我正在递归地搜索某个位置,例如
/cygdrive/c/dev/maindir/dir/
目录结构中有一个循环,即有一个链接
../maindir/dir/loopedDir/loopedDir
指向
../maindir/dir/loopedDir

当我跑步时:

grep --exclude="/cygdrive/c/dev/maindir/dir/loopedDir/loopedDir" 'myPattern' -R /cygdrive/c/dev/maindir/dir/
…它工作正常,就像预期的那样,找到了我需要的东西。 然而,我也得到了一个警告:

grep: warning: /cygdrive/c/dev/maindir/dir/loopedDir/loopedDir: recursive directory loop

…我想知道这是为什么。dir排除不应该阻止这种特殊的循环发生吗?我应该如何修改查询以避免收到警告?

添加grep的选项
-s
以抑制此错误消息和其他错误消息。

尝试
--exclude dir=“/cygdrive/c/dev/maindir/dir/loopedDir/loopedDir”
表示从递归搜索中排除目录。
--exclude
的参数是一个与我相信的目录名匹配的模式。Try
--exclude=loopedDir
grep
是用于全局搜索正则表达式并打印(即grep)结果的UNIX工具。忘了你曾经听说过递归查找文件的选项吧,这是一个可怕的想法,完全违背了UNIX的工作方式,根本不应该实现。查找文件的UNIX工具被恰当地命名为
FIND
。警告消息并不是困扰我的问题,而是消息背后的原因。我不是想摆脱这个信息,而是想知道是什么导致了它——我想知道为什么它是这样工作的。不过,有用的提示,谢谢。