I have worked on a file in Directory A. There is a file with the same name in directory B which is an older version of that same file. I rsync everything from B to A.
What happens to my work in the file in directory A?
It depends what command arguments you give it, but by default the file will be overwritten with the older version.
I’d recommend looking into
--update
and--ignore-existing
if you want to change that behavior to better suite your end goals. And test it out with-n
which is a dry run for testing.Thanks - Looking at the man page, It looks like I would want --update in this case as it would cause the newer version to be present in both directories afterward.
I kind of figured that is what you were trying to do by your scenario but wasn’t completely sure of it. That’s right though, if you want to keep the most recent version of the file then
--update
should do that for you. And you could write a simple script that does this each way, and schedule it to run however often. I saw your other comment now too, you might want to take a look into syncthing. Nothing against, rsync, I use it all the time for copying files but if this is something that you want to be continually synced then syncthing might be a better solution for you.After a session or two where I have perhaps only worked in A or B alone. I can manually trigger the shell script. Thanks for confirming tho.
https://linux.die.net/man/1/rsync
Source overrides destination.
there are a gazillion switches to control the behavior. Like, --ignore-existing, to not overwrite any existing files …
The actual use case: I have an emulator that uses a directory as the ‘system disk’ of the computer being emulated, but I have one of these on each of two machines. As I make updates I want to have the proper files updated on the other directory so between changes on the two emulators the most recent is synced to the other directory.
It seems I will need to use 2 rsync commands, one in each direction. Update A from B, then update B from A.
A becomes B. But… you have a lot of options in case you want a different behavior.
I have no idea what types of files these are but it could turn out that you should rather use Git and push/pull from both sides which could works better.
Just a suggestion :)