Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have directory a and directory b. They are big. b is almost identical to a. "almost" means that 4-5 files differ, and I don't know which they are. I want to copy b over a, but only the files that differ. i'm in bash.

(no, I can't simply delete a and replace it with b, because 1) a is version-controlled 2) a full copy (or a mv) would take too much. I want to copy only the files that differ).

share|improve this question
Is rsync an option? – Bobby Feb 3 '11 at 11:43
It is, but I don't know much about rsync. – janesconference Feb 3 '11 at 11:44
up vote 13 down vote accepted

You can use rsync to do this, the command I use is rsync -tr "folder to copy from" "folder to copy to"

e.g. rsync -tr /home/me/stuff/* /home/me/otherstuff/

share|improve this answer
BEWARE of this command. It will delete all the files which wont differ. I ran it and LOST almost everything!! – Arvind K. Apr 12 at 8:15

It is also possible to do this with good old cp:

Thanks to srcspider for reminding me to use -T!

cp -ruT old-dir new-dir

share|improve this answer
+1 I get so used to synching across machines I forget the elegant ways. – Tog Feb 3 '11 at 12:11
does not work for me :( – janesconference Feb 3 '11 at 12:51
That's actually good gnu cp. ;-) – Keith Feb 3 '11 at 19:58
On OS X, the -u option does not exist. I simply used cp -r old-dir new-dir, since I did not have to compare dates. – Jean-François Beauchamp Nov 12 '12 at 2:11
Does not work. I am not sure if this is some name convention but cp -ru folder-A folder-B will simply copy folder-A inside folder-B not copy contents of A inside B and overwrite, which would be the desired effect. – srcspider Mar 21 '13 at 16:16

Another good option is Unison (, particularly if there isn't really a "source" and a "destination". Each directory is a root and Unison syncs them and keeps metadata for future syncs. It offers both a command-line and a GUI option that can easily be scheduled via cron as well.

I use it to make a backup of my Dropbox to my local NAS appliance which can't run a Dropbox client.

share|improve this answer

It CAN be done with good ol' cp, though with a slightly different format than stated above. Here's how I did it:

cp -ru --target-directory="destination_path" source_path/*
share|improve this answer

You can diff the 2 directories.

diff -r dir1 dir2

it will show you the list of files that are differnet

share|improve this answer

Your Answer


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.