I’m looking for a linux program that can mirror a directory to another drive and move a subdirectory in the mirror.
Syncthing is also an option.
Perhaps git would work?
But
rsync
can do this fine with--recursive --delete
. The mirror will remain an exact replica.lsyncd does just this. It’s intended use is to sync directories between systems over slow(ish) uplink, but it can work locally as well. It takes some fiddling to set up, but once set up it just does it’s thing seamlessly at the background. However if you’re just looking for a backup solution I’d might look for something else, like a plain rsync script.
This is the best answer. I use it regularly to keep hundreds of TB in sync across nodes. Works extremely well and is pretty much hands off once setup.
Have a look at rsync-sidekick maybe.
borg does this
I found an answer on StackExchange that refers to a tool called rsync-sidekick which looks like it could achieve your aims.
Edit: There is also another answer on that same StackExchange page referring to a script called rsync-prepare which is capable of working with a remote destination.
Why not maintain a soft or hard link?
I use RealTimeSync.
It just… Works. I love it. It’s free.
There are plenty of features that could effectively let you do what you want.
Mine is set to sync my server with a backup whenever my main PC is idle for 20 mins. Once it determines how to sync, it lets me review before syncing.
Why not exclude the folder you want to move from the initial sync, and sync that folder separately to the final location?
Restic, kopia, and Borg are all pretty good backup tools with deduplication built in, so they might be a good option if you’re doing this for backup purposes?