App to copy everything from folder A that folder B doesn't have to B?
December 16, 2014 5:06 AM   Subscribe

Is there an app to copy everything from one folder to another folder that isn't already in the other folder? Suppose folder A has contents {a, f, j} and folder B has contents {f, m, v}. I'd want to be able to press a button that will figure out which files A has that B doesn't have, namely {a, j}, and copy them to the B folder, so that afterwards B will have {a, f, j, m, v}.

Note: I'd be just as happy to have an app that will simultaneously go in both directions, making sure that each folder gets whatever the other folder has.
posted by Eiwalker to Computers & Internet (17 answers total) 13 users marked this as a favorite
 
TeraCopy (for Windows)
posted by dhens at 5:09 AM on December 16, 2014 [2 favorites]


rsync on linux or OS X.
posted by hoyland at 5:14 AM on December 16, 2014 [1 favorite]


Total Commander is another Windows option. Grsync has versions for various platforms. (edit: Grsync is a GUI version of rsync mentioned above)
posted by quinndexter at 5:15 AM on December 16, 2014


You want to copy everything from one folder to another, but skip things that are already there? rsync.

You may need to decide what counts as "already there" though. File size, modified date, contents of file?
posted by devnull at 5:21 AM on December 16, 2014


BeyondCompare is what you want.
posted by pyro979 at 5:30 AM on December 16, 2014 [4 favorites]


Seconding Beyond Compare. I love that thing SO hard.
posted by julthumbscrew at 5:32 AM on December 16, 2014


Yet another option: FreeFileSync. I use it to sync stuff between my hard drive and a usb stick.
posted by desjardins at 6:20 AM on December 16, 2014


If you're on Windows (you're not saying, so I can't assume): you don't need an app (or program). If you just use Explorer to copy all the files from directory A into directory B, Windows will ask you if you want to skip file f, and you tell it yes.

This sounds way too simple so I'm probably missing something really obvious. Story of my life.
posted by Too-Ticky at 6:37 AM on December 16, 2014


Response by poster: I am very pleased to hear of these options, but, to follow up on devnull's question, I should say that I'm interested in more than just file names. I am interested first and foremost in file content. If, say, a pair of pdf documents, when opened, differ even slightly, such as that one has a comma that's deleted in the other one, I want to retain copies of both of them.
posted by Eiwalker at 6:39 AM on December 16, 2014


If this is for Windows, ye olde gold standard is going to be xcopy. The updated version is Robocopy.
posted by mikeh at 7:11 AM on December 16, 2014


robocopy /mir sourcedir targetdir

If you're on windows, robocopy is probably on there. Run the above from the command line.
posted by punchee at 7:12 AM on December 16, 2014


Well for rsync you can run in dry-run mode first, and examine the differences. Then you run in normal mode. Beyond Compare probably has something similar.
posted by devnull at 7:14 AM on December 16, 2014


Robocopy and SynchPro are my go to utilities for this.
posted by Hermione Granger at 7:21 AM on December 16, 2014


I use Synctoy to make one folder match the other's contents. It will track file renames and add files from both to the other.

CloneSpy will help you find duplicates (by content), even if they have different names. So, you could copy all files from both A and B into a new folder, appending 2 to any duplicate names. Then use CloneSpy to remove the dupes.
posted by soelo at 7:35 AM on December 16, 2014


I'm not aware of a program that will do this by assessing content. Usually it's by filename, and when I have managed big groups of files with Beyond Compare, it finds duplicates and lets me make choices. Or it can be set to follow preferences.
posted by theora55 at 8:12 AM on December 16, 2014


FreeFileSync has a "versioning" option, wherein, if a file has been changed, it'll update it in the destination folder, but also copy the old version to another folder and add a time stamp to the filename. To quote its documentation:
Set deletion handling to Versioning and naming convention to Time stamp. FreeFileSync will move deleted files into the provided folder and add a time stamp to each file name. The structure of the synchronized folders is preserved so that old versions of a file can be conveniently accessed via a file browser.

Example: A file Folder\File.txt was updated three times and old versions were moved to folder C:\Revisions
C:\Revisions\Folder\File.txt 2012-12-12 111111.txt
C:\Revisions\Folder\File.txt 2012-12-12 122222.txt
C:\Revisions\Folder\File.txt 2012-12-12 133333.txt
If you specifically want everything to end up in Folder B, not Folders B and C, I would suppose you could set the folder with the older versions to be the same as the destination folder (provided that that's not the drive's root directory). The caveat is that I haven't tested this, nor have I tried the versioning feature. (Also, it does look like the YYYY-MM-DD hhmmss filename renaming scheme shown above is hard-coded.)
posted by Shmuel510 at 8:40 AM on December 16, 2014


(As for how it knows the difference, there are two options. The usual one is checking for differences in file time and size; if either of those attributes has been changed, the program assumes that the files are different; if they're both equal, the program assumes they're the same. There is also an option for checking the file content itself. This will take longer to run, for obvious reasons.)
posted by Shmuel510 at 8:45 AM on December 16, 2014


« Older Winter in San Francisco   |   Getting started selling erotic fiction. Newer »
This thread is closed to new comments.