
これは、検索のルート ディレクトリから "foo" ディレクトリを除外するという点で、私にとってはうまく機能します。
grep -rn --exclude-dir=foo 'custom'
しかし、これは機能しません:
grep -rn --exclude-dir=foo/bar 'custom'
しかし、「foo/bar」ディレクトリは依然として検索されます。引用符を使っても試してみました:
grep -rn --exclude-dir='foo/bar' 'custom'
Ubuntu 20を使用しています。
アップデート
完璧ではありませんが、代わりに次の回避策を使用しました。
grep -rn 'custom'|grep -v 'foo/bar'
この場合、「foo/bar」と「custom」の両方を含む行は見つかりません。
答え1
私も同じ問題に遭遇しましたが、電話して解決しました
grep -rn --exclude="**/foo/**" 'custom'
答え2
この演算子は、"*variable*"
grep 検索から除外するディレクトリに一致するワイルドカードとして使用します。
あなたの場合、
grep -rn --exclude-dir={"*foo*"} 'custom'
'foo' という名前のディレクトリまたはサブディレクトリを除外します。
grep -rn --exclude-dir={"*foo*","*bar*"} 'custom'
'foo' および 'bar' という名前のディレクトリとサブディレクトリを除外します。