Коротка відповідь
Використовуючи командний рядок (термінал):
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:
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