public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Andrey Repin <anrdaemon@yandex.ru>
To: Fergus Daly <fergusd84@outlook.com>, cygwin@cygwin.com
Subject: Re: When only rsync will do .. or maybe not
Date: Sat, 22 Oct 2022 17:39:19 +0300	[thread overview]
Message-ID: <3910040698.20221022173919@yandex.ru> (raw)
In-Reply-To: <DB6P18901MB0055D8029AD580DE9D4AB12FA4229@DB6P18901MB0055.EURP189.PROD.OUTLOOK.COM>

Greetings, Fergus Daly!

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

Full pathname would include the /folder1 making the requirement impossible
from the start.
If, on the other hand, you want to preserve directory structure, then a simple

    cd /f1; find . -xdev -type d -exec mkdir -p "/f2/{}" ';' -o -type f -exec mv '{}' "/f2/{}" ';'

will do.

> 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.

`cp --reflink=always` will take care of duplicated content.
Do note that paths must be relative. cp has an issue detecting "same volume"
and failing or falling back to simple copy.

> 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?

No, not the purpose of rsync.

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

Yep.
See above.


-- 
With best regards,
Andrey Repin
Saturday, October 22, 2022 11:56:05

Sorry for my terrible english...


      parent reply	other threads:[~2022-10-22 14:50 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-12 10:55 Fergus Daly
2022-10-14 13:36 ` Cyrille Lefevre
2022-10-14 15:35   ` Lemke, Michael  SF/HZA-ZE2E
2022-10-22 14:39 ` Andrey Repin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3910040698.20221022173919@yandex.ru \
    --to=anrdaemon@yandex.ru \
    --cc=cygwin@cygwin.com \
    --cc=fergusd84@outlook.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).