Em geral, você pode usar a opção grep de -H para "[p] obter o nome do arquivo para cada correspondência".
Isso encontrará linhas que contêm word1 ou word2 :
grep -HE "word1|word2" ~/files/* 2>/dev/null
Se você quiser encontrar linhas com word1 e word2 , faça:
grep -HE "word1.*word2|word2.*word1" ~/files/* 2>/dev/null
O envio de stderr para um esquecimento escuro com 2>/dev/null impede que grep envie mensagens de erro inúteis, por ex. se um dos arquivos correspondentes for um diretório.