Encuentra archivos que contienen múltiples cadenas

Utilizo un comando para buscar de forma recursiva archivos que contienen un determinadostring1:

find . -type f -exec grep -H string1 {} \;

Necesito encontrar archivos que contengan varias cadenas, por lo que el comando debería devolver aquellos que contengan todas las cadenas. Algo como esto:

find . -type f -exec grep -H string1 AND string2 {} \;

No pude encontrar una manera. Las cadenas pueden estar en cualquier parte de los archivos. Incluso una solución para solo dos cadenas sería buena.

Respuestas a la pregunta(4)

Su respuesta a la pregunta