this post was submitted on 17 Aug 2023
20 points (95.5% liked)

Linux

48295 readers
664 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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?

top 9 comments
sorted by: hot top controversial new old
[–] somedaysoon@lemmy.world 20 points 1 year ago* (last edited 1 year ago) (1 children)

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.

[–] waspentalive@lemmy.one 4 points 1 year ago* (last edited 1 year ago) (1 children)

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.

[–] somedaysoon@lemmy.world 2 points 1 year ago* (last edited 1 year ago) (1 children)

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.

[–] waspentalive@lemmy.one 1 points 1 year ago

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.

[–] drkt@feddit.dk 13 points 1 year ago
[–] sportsfork@sopuli.xyz 8 points 1 year ago

there are a gazillion switches to control the behavior. Like, --ignore-existing, to not overwrite any existing files ...

[–] waspentalive@lemmy.one 2 points 1 year ago

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.

[–] mfigueiredo@lemmy.world 2 points 1 year ago

A becomes B. But... you have a lot of options in case you want a different behavior.

[–] Lemmyin 1 points 1 year ago

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 :)