Você poderia, por exemplo, usar o comando find com a opção -exec. Você provavelmente usaria alguma sintaxe como a seguinte (deve ser executada em dirB e estar ciente de que é recursiva):
find ./ -type f -exec cp '../dirA/{}' ./ \;
O -tipo f diz ao achado para considerar apenas os arquivos regulares, diz o -exec: execute o seguinte comando em cada arquivo. O \; no final termina o comando a ser executado. O {} é um espaço reservado que é substituído pelo nome do arquivo real por find. Confira a man page do find para detalhes e outros exemplos de uso.
Veja o que acontece no meu PC:
desktop:~$ mkdir dirA
desktop:~$ mkdir dirB
desktop:~$ cd dirA
desktop:~/dirA$ touch foo bar this
desktop:~/dirA$ cd ..
desktop:~$ cd dirB
desktop:~/dirB$ touch bar this
desktop:~/dirB$ find ./ -type f -exec cp -v '../dirA/{}' ./ \;
»../dirA/./this“ -> »./this“
»../dirA/./bar“ -> »./bar“