Se você não se importa com os nomes, em cada pasta, mova os arquivos para a pasta de destino, renomeando-os após o hash MD5:
for f in folder1/* folder2/*;do mv -nv "$f" target/$(md5sum -b "$f" | cut -d ' ' -f 1); done
-n
não é estritamente necessário, evita que o primeiro arquivo movido seja danificado por um segundo arquivo idêntico. Assim, o resultado final é que, com isso, as duplicatas são deixadas em seus diretórios de origem e você tem uma idéia de quantos duplicados você teve).
Em seguida, se necessário, forneça outro conjunto de nomes arbitrários (execute em target
):
ls | cat -n | while read n f; do mv "$f" "$n.extension"; done
(one-liner acima de aqui )