Short answer
Using the command line (Terminal):
cp -r -n ~/Desktop/src/* ~/Desktop/destination/
The command above adds the src
content and the subdirectories to the destination
without overwriting the content already present in the destination
.
Long answer
Even if the content overlaps, you can still use cp
to do it. Assume that you have two folders on your desktop: the src
and the destination
folders and you want to merge src
into destination
:
To merge, just do:
cp -r ~/Desktop/src/* ~/Desktop/destination/
NOTE When you use this, the content in src
overwrites the content in the destination
folder and adds the extra stuff that are missing in the destination
. It shouldn't matter if you just want to add the missing files from src
into destination
.
ALSO it doesn't matter how many subdirectories are there, it will just go through each folder recursively and it will overwrite the content and will add the stuff that is missing in the destination
folder.
BUT
PITFALL If you have huge files (like video files), you don't want to wait until everything is overwritten, it adds a lot of overhead.
PITFALL SOLUTION: Instead, you can use the -n
flag to skip the overwriting:
cp -r -n ~/Desktop/src/* ~/Desktop/destination/
This is the description of the -n
flag from the man page:
man cp
-n Do not overwrite an existing file. (The -n option overrides any
previous -f or -i options.)
Further Reading
- https://stackoverflow.com/questions/5088332/overhead-of-a-flag-in-cp-command