Para una búsqueda de archivos simple, puede usar -l de grep y -r opciones:
grep -rl "mystring"
 Toda la búsqueda se realiza mediante grep. Por supuesto, si necesita seleccionar archivos en algún otro parámetro, encuentre la solución correcta:
find . -iname "*.php" -execdir grep -l "mystring" {} +
 
 El execdir La opción construye cada comando grep por cada directorio y concatena los nombres de archivo en un solo comando (+ ).
 La opción estándar grep -l (que es una L minúscula) podría hacer esto.
Del estándar Unix:
-l
    (The letter ell.) Write only the names of files containing selected
    lines to standard output. Pathnames are written once per file searched.
    If the standard input is searched, a pathname of (standard input) will
    be written, in the POSIX locale. In other locales, standard input may be
    replaced by something more appropriate in those locales.
 
 Tampoco necesitas -H en este caso.
 Desde el grep(1) página man:
-l, --files-with-matches Suppress normal output; instead print the name of each input file from which output would normally have been printed. The scanning will stop on the first match. (-l is specified by POSIX.)