You can make use of the --compare-dest
option. This saves some time and space, as you don’t have to enumerate the whole contents of the first destination, and will work incrementally with many targets. Here’s how it works: After copying the contents from A to B, you run:
rsync -avz --compare-dest=/path/to/B /path/to/A/ /path/to/C/
rsync will use the contents of B to see what it has to transfer to C to make the copy of A complete. Anything which is already in B won’t be transferred. Note that absolute paths for --compare-dest are required, otherwise the path is taken as relative to the destination.
If you in any event have to split your destination further, you can compare to multiple previous targets by adding more --compare-dest
arguments.