Apple - Copy new files only - is this possible? Basically want to merge two folders

This is a classic use case for rsync:

rsync -av /source-path/source-dir /destination-path

rsync will copy only new and changed files to the new location.

It is important to understand how a trailing slash on the source argument functions. If there is a trailing slash then the contents of /source-path/source-dir will be copied to destination-path. If there is no trailing slash then source-dir itself will be copied to the destination and its contents will be another level down in the destination hierarchy.

So if you want to replicate one path to another include the trailing slash as follows:

rsync -av /sourcepath/sourcedir/ /duplicatpath/sourcedir/

The merge option will only show up if you are copying (rather than moving) the folder. Make sure you hold option while you drag the new folder to the location of the old folder. Alternatively, using +c to copy the new folder and +v to paste over the old folder should give you the option to merge the files.


First install coreutils first. Run brew install coreutils. If you don't have brew installed... switch back to windows!

Check that cp --version outputs version cp (GNU coreutils) 8.^^

Then you will have the correct cp version and the -u flag will work.

Check the cp command. Use man cp and read the options. You can do something like:

cp -r -u ~/source ~/destination

-R, -r, --recursive : copy directories recursively
-u, --update : copy only when the SOURCE file is newer than the destination file or when the destination file is missing
-p same as --preserve=mode,ownership,timestamps
-v --verbose : explain what is being done

So if you want to copy files from you Downloads/music folder to say your Music/new folder you would do something as:
cp -ruvp ~/Downloads/music/* ~/Music/new/
This would merge the contents of these two folders and if two files with the same name and path exist it would keep the newest one based on the timestamp.