Path: csiph.com!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: Dan Purgert Newsgroups: alt.os.linux,uk.comp.os.linux Subject: Re: rsync Question Date: Tue, 21 Oct 2025 15:37:55 -0000 (UTC) Organization: A noiseless patient Spider Lines: 123 Message-ID: References: <10d80d9$3tola$1@dont-email.me> <10d85o4$2mn$1@dont-email.me> Injection-Date: Tue, 21 Oct 2025 15:37:56 +0000 (UTC) Injection-Info: dont-email.me; posting-host="6374a5741f49a1d7b0cc20449b38214e"; logging-data="42421"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18d1KGdmdZK5OM/c2flyrRXVrpYZowTIQI=" User-Agent: slrn/1.0.3 (Linux) Cancel-Lock: sha1:uA+GLi1th68lg+AV7yTFo4g9mJg= Xref: csiph.com alt.os.linux:81961 uk.comp.os.linux:23802 On 2025-10-21, Java Jive wrote: > On 2025-10-21 14:49, Dan Purgert wrote: >> On 2025-10-21, Java Jive wrote: >>> Having made a slight cock-up, I want to use rsync to move all the files >>> that exist on one server but not the other into a separate heirarchy. >>> >>> More fully: >>> >>> I have two identical servers, the second of which rsyncs itself from the >>> other overnight. This morning, due to an oversight, I put a load of >>> files into a directory structure that were intended to go into a >>> subfolder of it. What I want to do is rsync from the second server to >>> the first and move files that only exist on the first into a directory >>> tree elsewhere on the server, so that then I can move that extraneous >>> tree back into the originally intended subfolder. Something like this: >> >> rsync doesn't 'move'. >> >> *IF* you've already moved the relevant files from /src/wrongdir to >> /src/correctdir ; then you can rsync with "--delete" to delete those >> files on /dest/ that are no longer in /src/ (i.e. 'got moved from >> /src/wrong/ to /src/correct/'). >> >> I would definitely do the --dry-run, and read it *very* closely, to make >> sure the rsync isn't removing more than I expect. > > Yes, after posting I did a test along the following lines which proved > the files would be deleted, not moved ... > > mkdir 1temp 2temp elsewhere > touch 1temp/test > touch 2temp/extratest > > rsync -a --backup-dir=elsewhere 1temp/ 2temp/ > > ls -al 1temp > . > .. > test > ls -al 2temp > . > .. > test > ls -al elsewhere > . > .. > >:-( rsync cannot "backup" something it doesn't know about or isn't changing... likewise your command shouldn't have deleted "extratest" dan@framework:~/rsync$ mkdir 1temp 2temp elsewhere dan@framework:~/rsync$ touch 1temp/test dan@framework:~/rsync$ touch 2temp/extratest dan@framework:~/rsync$ rsync -av --backup-dir=elsewhere 1temp/ 2temp/ sending incremental file list ./ test sent 116 bytes received 38 bytes 308.00 bytes/sec total size is 0 speedup is 0.00 dan@framework:~/rsync$ ls -la 1temp total 8 drwxr-xr-x 2 dan dan 4096 Oct 21 11:31 . drwxr-xr-x 5 dan dan 4096 Oct 21 11:31 .. -rw-r--r-- 1 dan dan 0 Oct 21 11:31 test dan@framework:~/rsync$ ls -la 2temp total 8 drwxr-xr-x 2 dan dan 4096 Oct 21 11:31 . drwxr-xr-x 5 dan dan 4096 Oct 21 11:31 .. -rw-r--r-- 1 dan dan 0 Oct 21 11:31 extratest -rw-r--r-- 1 dan dan 0 Oct 21 11:31 test dan@framework:~/rsync$ ls -la elsewhere total 8 drwxr-xr-x 2 dan dan 4096 Oct 21 11:31 . drwxr-xr-x 5 dan dan 4096 Oct 21 11:31 .. Now, if we add in '--delete' ... dan@framework:~/rsync$ rsync -av --delete --backup-dir=elsewhere 1temp/ 2temp/ sending incremental file list deleting extratest sent 70 bytes received 25 bytes 190.00 bytes/sec total size is 0 speedup is 0.00 dan@framework:~/rsync$ ls -la 1temp total 8 drwxr-xr-x 2 dan dan 4096 Oct 21 11:31 . drwxr-xr-x 5 dan dan 4096 Oct 21 11:31 .. -rw-r--r-- 1 dan dan 0 Oct 21 11:31 test dan@framework:~/rsync$ ls -la 2temp total 12 drwxr-xr-x 3 dan dan 4096 Oct 21 11:31 . drwxr-xr-x 5 dan dan 4096 Oct 21 11:31 .. drwxr-xr-x 2 dan dan 4096 Oct 21 11:33 elsewhere -rw-r--r-- 1 dan dan 0 Oct 21 11:31 test dan@framework:~/rsync$ ls -la elsewhere total 8 drwxr-xr-x 2 dan dan 4096 Oct 21 11:31 . drwxr-xr-x 5 dan dan 4096 Oct 21 11:31 .. dan@framework:~/rsync$ ls -la 2temp/elsewhere/ total 8 drwxr-xr-x 2 dan dan 4096 Oct 21 11:33 . drwxr-xr-x 3 dan dan 4096 Oct 21 11:31 .. -rw-r--r-- 1 dan dan 0 Oct 21 11:31 extratest NOTE -- the deleted file went into "2temp/elsewhere", because of the behavior of --backup-dir: Note that if you specify a relative path, the backup directory will be relative to the destination directory, -- |_|O|_| |_|_|O| Github: https://github.com/dpurgert |O|O|O| PGP: DDAB 23FB 19FA 7D85 1CC1 E067 6D65 70E5 4CE7 2860