我想遍历所有子目录,除了“node_modules”目录。


当前回答

一个更简单的方法是使用“grep -v”来过滤结果。

grep -v node_modules . grep -i needle -R * |

其他回答

这个对我很有用:

grep <stuff> -R --exclude-dir=<your_dir>

如果要排除多个目录:

"r"表示递归,"l"表示只打印包含匹配项的文件名,"i"表示忽略大小写区别:

grep -rli --exclude-dir={dir1,dir2,dir3} keyword /path/to/search

示例:我想找到包含单词“hello”的文件。我想搜索所有的linux目录,除了proc目录,boot目录,sys目录和根目录:

grep -rli --exclude-dir={proc,boot,root,sys} hello /

注意:上面的示例需要是root

注2(根据@skplunkerin):不要在{dir1,dir2,dir3}中的逗号后面添加空格

如果你在git存储库中grep代码,而node_modules在你的.gitignore中,你可以使用git grep。Git grep在工作树中搜索被跟踪的文件,忽略来自.gitignore的所有文件

git grep "STUFF"

一个简单的工作命令:

root/dspace# grep -r --exclude-dir={log,assetstore} "creativecommons.org"

上面我grep文本“creativecommons.org”在当前目录“dspace”和排除dirs{日志,资产存储}。

完成了。

步骤1:

vim ~ / . bash_profile

search() {
    grep -InH -r --exclude-dir=*build*  -e "$1" .
}

步骤2:

源~ / . bash_profile

用法:

搜索”< string_to_be_searched >”