Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Say I have a pictures folder which I reorganized on one computer. I'd like to use that directory as the base and compare it with another version on a backup drive. Will any Synchronisation/compare program find that a file in one folder has moved locations within a compare folder?

For instance, say I reorganized my pictures from trips into folders by year with the trips folders inside each year folder. If I use a regular compare utility I wind up with two copies of everything that's moved in different locations.

share|improve this question

5 Answers 5

It all depends on how you set up the sync process.

Most sync programs have options on what to do if a file is/isn't in the source or is/isn't in the target. Properly set to completely echo a directory, a sync program will delete files in the target that are not in the source, and will copy from the source files that are not in the target or that are newer.

However, no sync program will detect that a file was renamed, in the sense that it will not rename the file in the target directory. It will just delete the file with the old name, and then copy the the file with the new name. This will take more time, of course, but sync programs don't have artificial intelligence.

That said, my own favorite sync product is FreeFileSync (go to end of the page).

share|improve this answer

I heard Microsoft's SyncToy program has this capability.

or this tool by Risefly.

share|improve this answer

Yes, I found software that does this, better than any other: Super Flexible File Sunchronizer.

Listed under the features:

Detects moved files. If you reorganized your folders by moving files to different locations, Super Flexible File Synchronizer will detect this and quickly perform the same moves, for example, on your laptop. No extraneous copying!"

share|improve this answer
    
Tried and verified. It actually does that! (It's now called Syncovery) –  ananth.p Jun 26 '13 at 7:04

I don't know of any software that detects renames/moves across a whole folder hierarchy. That would be fairly slow, as it would have to scan all files to compare them.

The feature was once proposed as a patch for rsync (google for "rsync detect-renamed"), but apparently it was never accepted into rsync.

rsync does have a limited version of what you are looking for:

-y, --fuzzy

This option tells rsync that it should look for a basis file for any destination file that is missing. The current algorithm looks in the same directory as the destination file for either a file that has an identical size and modified-time, or a similarly-named file. If found, rsync uses the fuzzy basis file to try to speed up the transfer.

This will not work if you move files between directories, though.

That said, most sync programs do have the option to remove files in the destination if they are missing from the source, so a move should be replicated as new+delete, which requires more copying, but would work.

If you just want to compare drives, not sync them, you could just write a small script that lists all files with their filenames (and maybe a checksum), and import that into a spreadsheet or small db. Then you can sort by filename or checksum, and directly compare the lists of files. That might be the easiest route.

share|improve this answer

Try Allway Sync, it's free and you won't end up with duplicates. I use it too to backup my laptop on my main pc.

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.