A primeira pergunta pode ser respondida com uma combinação de ls e diff:
Vamos criar alguns arquivos:
dennis@lightning:/tmp$ mkdir A B
dennis@lightning:/tmp$ touch A/{c,d} B/{a,b,c,d}
E agora os diferenciamos:
dennis@lightning:/tmp$ diff -u <(ls A) <(ls B)
--- /dev/fd/63 2013-02-06 15:43:21.827691498 +0100
+++ /dev/fd/62 2013-02-06 15:43:21.827691498 +0100
@@ -1,4 +1,2 @@
+a
+b
c
d
Quanto à pergunta 2:
cp -n B/* A
Na página de manual:
-n, --no-clobber
do not overwrite an existing file (overrides a previous -i option)
Então, isso copiará apenas os arquivos ausentes.