正则表达式搜索实用程序grep有一个递归选项-R,但它的工作方式可能与您预期的不同。
假设要找到当前目录下*.org后缀的文件中包含"cheese"的文件
您有四个文件,两个在工作目录中,两个在下面,它们都包含相同的字符串:“I like cheese”。
您有四个文件,两个在工作目录中,两个在下面,它们都包含相同的字符串:“I like cheese”。

看起来grep -R可以搜索当前目录中*.org格式的所有文件,但是他好像忽略-R选项,子目录不搜索;或者如果不给它一个文件后缀,则递归地搜索所有文件,但它不能两者兼顾。

解决这个问题的一种方法是使用find和xargs:

不过下边这个命令看上去更自然:
grep -l cheese $(find . -name '*.org')
现在,代码读起来更像是对grep的普通调用。从左到右,它本质上是说“在以.org结尾的文件中搜索‘cheese’”,而带有find的版本读起来像是“查找以。org结尾的文件,并在其中搜索‘cheese’。