Se o seu shell é bash ≥4, coloque shopt -s globstar no seu ~/.bashrc . Se o seu shell é zsh, você é bom. Então você pode correr
grep -n GetTypes **/*.cs
**/*.cs significa todos os arquivos correspondentes a *.cs no diretório atual ou em seus subdiretórios, de forma recursiva.
Se você não estiver executando um shell que suporte ** , mas o seu grep suportar --include , você pode fazer um grep recursivo e informar grep para considerar apenas arquivos que correspondam a determinados padrões. Observe as aspas em torno do padrão do nome do arquivo: ele é interpretado pelo grep, não pelo shell.
grep -rn --include='*.cs' GetTypes .
Com apenas ferramentas portáteis (alguns sistemas não têm grep -r ), use find para a parte de passagem de diretório e grep para a parte de pesquisa de texto.
find . -name '*.cs' -exec grep -n GetTypes {} +