Esta é uma pergunta intrigante. Eu tenho usado uma ferramenta chamada fdupes para realizar algo semelhante. Fdupes irá pesquisar recursivamente através de diretórios e comparar todos os arquivos com todos os outros arquivos. Primeiro ele compara o tamanho, e se os tamanhos são idênticos, ele cria hashes dos arquivos e compara isso, se os hashes são os mesmos, então, na verdade, passa por cada byte de arquivo byte e compara-o.
Quando se encontra todos os arquivos que são verdadeiramente idênticos, você pode fazer várias coisas. Eu tenho que excluir a duplicata e criar um link físico em seu lugar (poupando-me espaço em disco), embora você possa tê-lo simplesmente a saída dos locais dos arquivos duplicados e não fazer nada com eles. Este é o cenário sobre o qual você está perguntando.
Algumas desvantagens dos fdupes são que, até onde eu sei, é apenas Linux, e como compara cada arquivo com todos os outros arquivos, é necessário um pouco de E / S e tempo para execução. Ele não "procura" um arquivo por palavra, mas listaria todos os arquivos que possuem um hash idêntico.
Eu recomendo e o configuro para ser executado em um cron job todos os dias, para que eu nunca tenha nenhuma duplicação desnecessária dos meus dados (isso exclui meus backups, é claro).
Página de origem do Fdupes