递归搜索文件夹但排除 svn 子文件夹

Ant*_*ott 10 grep

我想foo在 SVN 维护的大型文件系统中找到所有出现的情况,但我不想匹配任何.svn目录中包含的任何内容。

当我这样做grep -l -e 'foo' *时,我会立即得到匹配,但是当我尝试使用grep -l -e 'foo' --exclude-dir=".svn"命令排除 svn 目录时,它会挂起。

我究竟做错了什么?

eph*_*ent 11

--exclude-dir不取代在命令行上列出文件的需要。您正在“挂起”,因为grep正在等待标准输入。

grep -l -e 'foo' --exclude-dir=".svn" *

考虑使用ack,它.svn默认排除和类似的文件夹(并具有许多其他功能)。

  • 如果将 `*` 更改为 `.`,则更干净,以防有其他隐藏文件夹需要搜索。 (2认同)

Why*_*ugo 5

您可能对ack感兴趣。它执行递归搜索(和其他类似 grep 的操作),并默认排除.svn.git 等目录