Если вы хотите знать, почему ваша команда не работает, см. другой ответ. Если вы хотите знать, как заставить его работать, вот еще один подход (скопированный из Grep в файлах с определенным расширением под каталогом с косметическими локализациями), который использует возможности bash, а не возможности grep (и, следовательно, будет работать для любой команды, такой как wc, cp или tar, а не только grep):
Установите (включить) вариант оболочки globstar с помощью команды [ ! d4]
shopt -s globstar
Это приведет к тому, что ** в качестве компонента имени файла будет означать все здесь и ниже. Итак, если вы находитесь в Desktop, тогда ** означает все в каталоге Desktop и его подкаталогах. Затем вы можете использовать
grep "printf" **/*.c
для поиска всех файлов .c в и [F15]. Вам не нужно указывать -r, потому что оболочка выполняет рекурсию для вас, и вам не нужно указывать --include, потому что шаблон расширения пути (aka glob или wildcard) содержит *.c.
Вы можете S установить параметры с помощью shopt -u.