Я думаю, вы должны отделить обработку файлов из обработки каталога. Сделайте каталоги первыми. В мире GNU:
cd /dir2
find /dir -mindepth 1 -maxdepth 1 -type d -exec mkdir {} \;
, а затем симлизы:
find /dir -mindepth 1 -maxdepth 1 -type f -exec ln -s -t /dir2 {} +