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

Reply via email to