Você pode simplesmente usar o rsync para conseguir isso; %código% (observe que os sinalizadores preservarão os privilégios de proprietário, grupo e segurança).
Devo acrescentar que a sua declaração, a partir da qual acredito que todo o seu problema surge, "Se eu apenas rsync -Aax /input/directory/path /output/directory/path
, então eu vou perder os arquivos cp -r patch/A/B dest/A/B
e dest/A/B/file-1
etc" não é preciso; você também pode simplesmente executar dest/A/B/file-3
e conseguir o que parece estar procurando (nenhum arquivo já existente será removido)