I use rsync for copying certain files to a folder (the directories are intentionally left out) which is synced to other devices with Syncthing:
find /mnt/media/ -name "*.epub" > /home/user/.logs/rsync/epub-paths.txt && \
rsync --archive --files-from=/home/user/.logs/rsync/epub-paths.txt \
--no-relative / /home/user/Documents/ebooks/
None of the files are created by me, the filenames often contain spaces and characters which are problematic in the shell. Sadly I can't easily rename everything on the mounted source drive.
I planned using detox to recursively process the destination ebook directory, but the program doesn't replace existing files — which in this case are all identical. Unfortunately, even if I all duplicates are removed, rsync still transfers gigabytes of data in vain each time the script is run (currently daily). Using jdupes or similar to remove the duplicate files afterwards isn't an actual solution.
In short: don't modify any local data, rewrite the filenames (and folders, if I had any) in the rsync transfer before being written on the destination.