Stack Overflow is a community of 4.7 million programmers, just like you, helping each other.

Join them; it only takes a minute:

Sign up
Join the Stack Overflow community to:
  1. Ask programming questions
  2. Answer and help your peers
  3. Get recognized for your expertise

It seems like very basic command. However even after an hour of searching the solution, I still can't find something that works.

So I have two big folders (with many files and many subfolder, the mega back-up). I'd like to combine these two folders into one folder that contains only newer files. So I'm searching a way to overwrite files IF ONLY source file is newer than the destination file, or when the destination file does not exist.

I'm running Mac version 10.7.4. I'm open to installing new application and/or using terminal/bash command.

share|improve this question

In Gnu systems, use mv -u SOURCE DEST or cp -u SOURCE DEST to move or copy only when the SOURCE file is newer than the DEST file or when the destination file is missing.

Note that in OS X, mv and cp don't support the -u option. However, rsync has a -u option and it is supported on OS X. For example:

rsync -aru SOURCE/ DEST

Run some tests in scratch directories before applying it to large and important directories, because (IMO) rsync is idiosyncratic regarding whether directory names end with or without a /. Part of the Linux man page says:

A trailing slash on the source changes this behavior to avoid creating an additional directory level at the destination. You can think of a trailing / on a source as meaning "copy the contents of this directory" as opposed to "copy the directory by name", ...

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.
{"cc_re__cc_re__cc_by_sa_3_0": ["                       <li><a href=\"//area51.stackexchange.com\" title=\"proposing new sites in the Stack Exchange network\">Area 51</a></li>\r\n                        <li><a href=\"//careers.stackoverflow.com\">Stack Overflow Careers</a></li>\r\n                    \r\n                </ol>\r\n            </td>\r\n    </tr>\r\n</table>\n                </div>\n            </div>\n\n            <div id=\"copyright\">\n                site design / logo &#169; 2016 Stack Exchange Inc; user contributions licensed under <a href=\"https://creativecommons.org/licenses/by-sa/3.0/\" rel=\"license\">cc by-sa 3.0</a> \n                with <a href=\"http://blog.stackoverflow.com/2009/06/attribution-required/\" rel=\"license\">attribution required</a>\n            </div>\n            <div id=\"svnrev\">\n                rev 2016.2.10.3242\n            </div>\n            \n        </div>\n    </div>\n    <noscript>\n        <div id=\"noscript-warning\">Stack Overflow works best with JavaScript enabled<img src=\"http://pixel.quantserve.com/pixel/p-c1rF4kxgLUzNc.gif\" alt=\"\" class=\"dno\"></div>\n    </noscript>\n<scr"], "copyright__copyright__copyright": ["ux man page says:\n\nA trailing slash on the source changes this behavior to avoid creating an additional directory level at the destination. You can think of a trailing / on a source as meaning \"copy the contents of this directory\" as opposed to \"copy the directory by name\", ...\n\nshare|improve this answer\n\nYour Answer\n\n\u00a0\ndiscard\n\nBy posting your answer, you agree to the privacy policy and terms of service.\n\nNot the answer you're looking for? Browse other questions tagged or ask your own question."]}