When only rsync will do .. or maybe not

Lemke, Michael SF/HZA-ZE2E lemkemch@schaeffler.com
Fri Oct 14 15:35:13 GMT 2022

On October 14, 2022 3:36 PM Cyrille Lefevre wrote:
>Le 12/10/2022 à 12:55, Fergus Daly a écrit :
>> 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.
>how about find /source | cpio -pdml /target
>alternative, cp -alu --parent /source /target
>then purge /source

Another idea: instead of copies create hardlinks in /folder2 (ln without -s) and then use 'find /folder1 -links 2 ...' to remove the originals. Exact syntax left as an exercise to the reader. Method is a little fragile if hardlinks exist in /folder1. Use with caution. Additional space required is just the directory entries.


More information about the Cygwin mailing list