Краткий ответ
Использование командной строки (Терминал):
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