Você só precisa realmente se apropriar dos diretórios. Arquivos comuns cuidarão de si mesmos da próxima vez que você modificá-los, links simbólicos e pipes não importam, e eu vou assumir que não existem dispositivos ou outros tipos exóticos.
Você pode fazer uma cópia recursiva dos diretórios, mas criar links físicos a partir dos arquivos regulares, em vez de copiá-los. Com GNU coreutils (Linux, Cygwin):
cp -al A B
Todos os arquivos regulares A/dir/file
têm hard-link como B/dir/file
. Você pode então remover a árvore de fontes.
Se você não tem o GNU coreutils, você pode usar o rsync:
cd A
rsync -a --link-dest=$PWD . ../B
Para garantir que a exclusão de A não remova realmente nenhum arquivo, verifique se todos os arquivos regulares têm uma contagem de links físicos de pelo menos 2 - o seguinte comando não deve produzir nada:
find A -type f -links 1