Eu acho que você deve separar o tratamento de arquivos do manuseio de diretórios. Faça os diretórios primeiro. No mundo GNU:
cd /dir2
find /dir -mindepth 1 -maxdepth 1 -type d -exec mkdir {} \;
E depois os links simbólicos:
find /dir -mindepth 1 -maxdepth 1 -type f -exec ln -s -t /dir2 {} +