Use zsh. Na página man zshexpn (1), Seção "Recursive Globbing":
A pathname component of the form '(foo/)#' matches a path consisting of zero or more directories matching the pattern foo.
As a shorthand, '**/' is equivalent to '(*/)#'; note that this therefore matches files in the current directory as well as subdirectories.
[...] This form does not follow symbolic links; the alternative form '***/' does, but is otherwise identical.
Isso também significa que **
não inclui diretórios ocultos (cujo nome começa com um ponto) por padrão. Se você quiser combiná-los, defina a opção GLOB_DOTS
ou use o qualificador D glob:
grep some_pattern /path/to/dir/**/foo(D)
Com o bash, você precisa definir explicitamente a opção globstar
para tornar **
work:
shopt -s globstar