Ответы:
С GNU grep вы можете использовать -R флаг иметь grep рекурсивный поиск совпадений. Если твой grep не поддерживает этот флаг, который вы могли бы использовать find вместе с этим вроде
find "path_to_start" -type f -exec grep -l "How are you?" {} +
который будет исполнителем grep -l "How are you?" for each file found anywhere under path_to_start (well, with {} + it might invoke grep` со многими файлами одновременно, но вывод одинаков).
Хоть с GNU grep может быть
grep -Rl "How are you?" "path_to_start"
где в обеих командах заменяешь "path_to_start" с корнем, в котором вы хотите начать поиск
grep -lпечатает имена файлов