如何递归地查找具有文本模式的文件,不包括某些目录和文件[重复]

Posted

技术标签:

【中文标题】如何递归地查找具有文本模式的文件,不包括某些目录和文件[重复]【英文标题】:How to find the files recursively having a text pattern excluding some directories and files [duplicate] 【发布时间】:2018-01-11 23:07:52 【问题描述】:

如何递归查找具有文本模式但不包括某些目录和文件的文件?

Example:- 
$ ls
bower.json      bower_components    configure       results         unit-tests

所以我需要在除 bower.json 和 results 之外的所有目录中递归查找“searchText”

【问题讨论】:

使用***.com/q/4210042/798223 中的方法,然后使用 -exec 标志对这些文件进行 grep。 您能提供确切的命令吗?这是行不通的。 find -name "*.js" -not -path 结果 find -type f -not -path './bower.json' -not -path './results/*' -exec grep 'searchString' -- '' +,但@RomanPerekhrest 的回答更好。 我也标记了这个问题,因为最初我将它标记为错误内容的副本,希望很快会得到修复。 感谢 GKFX!。我什至发现 grep 解决方案更好更干净。 【参考方案1】:

grep解决方案:

grep -r --exclude="bower.json" --exclude-dir="results" "searchText"

【讨论】:

感谢它的工作。只是一件小事。你需要把点(。)放在最后。 grep -r --exclude="bower.json" --exclude-dir="results" "reset-device" . @nagendra547,欢迎,点 . 是默认的

以上是关于如何递归地查找具有文本模式的文件,不包括某些目录和文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何递归遍历目录以删除具有某些扩展名的文件

如何在给定路径下查找具有与递归精确模式匹配的位置的目录名称列表[重复]

如何更改某些文件模式/扩展名的权限?

Linux递归查找具有给定字符串的文件名[重复]

递归查找目录下所有指定文件(包括深层目录)

递归使用 scp 但不包括某些文件夹