Resposta curta
Usando a linha de comando (Terminal):
cp -r -n ~/Desktop/src/* ~/Desktop/destination/
O comando acima adiciona o srcconteúdo e os subdiretórios ao destinationsem substituir o conteúdo já presente no destination.
Resposta longa
Mesmo se o conteúdo se sobrepuser, você ainda poderá usá cp-lo. Suponha que você tenha duas pastas no ambiente de trabalho: o srce as destinationpastas e você deseja mesclar srcem destination:

Para mesclar, basta fazer:
cp -r ~/Desktop/src/* ~/Desktop/destination/
OBSERVAÇÃO Quando você usa isso, o conteúdo srcsobrescreve o conteúdo da destinationpasta e adiciona os itens extras que estão faltando na destination. Não importa se você deseja apenas adicionar os arquivos ausentes srcno destination.
Além disso, não importa quantos subdiretórios existem, ele passará por cada pasta recursivamente e substituirá o conteúdo e adicionará o que está faltando na destinationpasta.
MAS
ARMADILHA Se você possui arquivos enormes (como arquivos de vídeo), não quer esperar até que tudo seja sobrescrito, isso adiciona muita sobrecarga.
SOLUÇÃO DE ARMADILHA : Em vez disso, você pode usar o -nsinalizador para ignorar a substituição:
cp -r -n ~/Desktop/src/* ~/Desktop/destination/
Esta é a descrição do -nsinalizador na página de manual:
man cp
-n Do not overwrite an existing file. (The -n option overrides any
previous -f or -i options.)
Leitura adicional
- /programming/5088332/overhead-of-a-flag-in-cp-command