When only rsync will do .. or maybe not

Fergus Daly fergusd84@outlook.com
Wed Oct 12 10:55:19 GMT 2022

Requirement: to move some selected files and folders under /folder1/ to /folder2/, preserving full pathnames.

Using cp with the switch --parents (taking care over syntax and importantly location $PWD) it is possible to _copy_ the
Required content across from /folder1/ to /folder2/ but there does not seem to be a matching switch for mv that would
achieve the same purpose.

One solution would be (i) to copy the required content to /folder2/ and then (ii) delete the identical content under /folder1/;
but this is expensive (one might not even have the disk space to do it) and it seems seriously unsatisfactory and not without risk
to have to copy folders and files (possibly huge) when all one wants to do is to change the {pathname} to them.

Question 1
Would the command (or something like it, again with care over syntax and $PWD)
$ rsync -axuv --progress {pathto}/folder1/{content} {pathto}/folder2/   
do the trick? Or is the very existence of the switch
$ rsync -axuv --remove-source-files --progress {pathto}/folder1/{content} {pathto}/folder2/
indicative that here too the "move" is achieved through a two-stage "copy-then-delete" operation?

Question 2
If rsync can provide a genuine "move" capability then is installing the rsync package adequate to the purpose;
or would librsync-devel and/or librsync2 packages need to be installed also?

Question 3
If not rsync, is there any operation for which "move" can be achieved without involving "copy-then-delete"? 

Thank you for any assistance.

More information about the Cygwin mailing list