Краткий ответ
Использование командной строки (Терминал):
cp -r -n ~/Desktop/src/* ~/Desktop/destination/
Приведенная выше команда добавляет srcсодержимое и подкаталоги в каталог destinationбез перезаписи содержимого, уже присутствующего в destination.
Длинный ответ
Даже если контент перекрывается, вы все равно можете использовать его cpдля этого. Предположим , что у вас есть две папки на вашем столе: srcи destinationпапки , и вы хотите объединить srcв destination:

Чтобы слить, просто сделайте:
cp -r ~/Desktop/src/* ~/Desktop/destination/
ПРИМЕЧАНИЕ При использовании этого, содержимое в srcперезаписывает содержимое в destinationпапке и добавляет дополнительные материалы, которые отсутствуют в destination. Не должно иметь значения, хотите ли вы просто добавить отсутствующие файлы srcв destination.
ТАКЖЕ не имеет значения, сколько существует подкаталогов, он просто рекурсивно просматривает каждую папку, перезаписывает содержимое и добавляет содержимое, отсутствующее в destinationпапке.
НО
PITFALL Если у вас есть огромные файлы (например, видеофайлы), вы не хотите ждать, пока все будет перезаписано, это добавляет много накладных расходов.
РЕШЕНИЕ PITFALL : Вместо этого вы можете использовать -nфлаг, чтобы пропустить перезапись:
cp -r -n ~/Desktop/src/* ~/Desktop/destination/
Это описание -nфлага со страницы руководства:
man cp
-n Do not overwrite an existing file. (The -n option overrides any
previous -f or -i options.)
Дальнейшее чтение
- /programming/5088332/overhead-of-a-flag-in-cp-command