Algo como
diff <(cd Dir1 && find . | sort | sed 's/\.type1$//') <(cd Dir2 && find . | sort | sed 's/\.type2$//')
poderia ser uma solução.
O comando ocultará .type1 e .type2 extensões nos dois diretórios para que eles não afetem o diff .
Aqui está um exemplo simples:
user@hostname:/tmp/test-diff$ find Dir* | sort
Dir1
Dir1/file1.type1
Dir1/file3.type1
Dir2
Dir2/file2.type2
Dir2/file3.type2
Dir2/file4.type2
O comando diff destacará que file1 está em Dir1 ( < ), mas não em Dir2 e file2 e file4 estão em Dir2 ( > ), mas não em Dir1
user@hostname:/tmp/test-diff$ diff <(cd Dir1 && find . | sort | sed 's/\.type1$//') <(cd Dir2 && find . | sort | sed 's/\.type2$//')
2c2
< ./file1
---
> ./file2
3a4
> ./file4