Eu recomendaria tentar usar algo como o rsync para determinar uma lista de arquivos ausentes / diferentes e, em seguida, usar essa listagem. No entanto, isso não funcionaria facilmente com suas necessidades.
Você também pode considerar o uso de localização para ajudar na possível recursão. Mesmo arquivos diff'ing dos 2 diretórios com alguns comandos sed e grep podem fornecer a lista de arquivos desejada.