A filesystem hierarchy synchronizer

Updated 2017-10-22


hsync SOURCE TARGET renames files in TARGET so that identical files found in SOURCE and TARGET have the same relative path.

The main goal of the program is to make folders synchronization faster by sparing big file transfers when a simple rename suffices. It complements other synchronization programs that lack this capability.

By default, files are not renamed and a preview is printed to standard output.

False positives can happen, e.g. if two different files in SOURCE and TARGET are the only ones of this size. Use the preview to spot false positives and make sure all files get renamed properly.

You can redirect the preview to a file. If you run the program using this preview file as SOURCE, the analysis will be skipped. This is useful if you want to tweak the result of the analysis.



hsync can easily be associated with rsync (or any synchronization for that matters) to speed up mirroring:

hsync -p /path/to/storage /path/to/mirror
rsync -livr --size-only --delete-excluded /path/to/storage/ /path/to/mirror

hsync also has some interesting side uses.


See the development page.


See hsync -h.


See the LICENSE in [the source code][src].