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. >> >> > >Hi, > >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. Michael -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple