rsync ownership oddity - bug or feature?

Keith keith at caramail.com
Thu Apr 21 02:51:48 UTC 2022


On 4/20/22 5:51 PM, Karl Auer wrote:
> On Thu, 2022-04-21 at 07:51 +1000, Karl Auer wrote:
>> It all works exactly as expected except that afterwards, /destination
>> is owned by fred:fred.
>>
>> Why?!? And is there anything I can do in the rsync command to stop
>> this behaviour?
> 
> Sigh. I read the man page (again) and found this:
> 
> 'A trailing slash on the source changes this behavior to avoid creating
> an additional directory level at the destination.  You can think of a
> trailing / on a source as meaning "copy the contents of this directory"
> as opposed to "copy the directory by name", but in both cases the
> attributes of the containing directory are transferred to the
> containing directory on the destination.'
> 
> I still find this behaviour wrong, but at least it's a known thing. I
> imagine that since it's been that way forever, it is not going to
> change any time soon.
> 
> Out of interest I tried this:
> 
>     rsync -a /source/* /destination
> 
> ...and that worked without changing the ownership on /destination.
> Unfortunately, this does not catch hidden files, so it's not really a
> useful equivalent.
> 
> Regards, K.
> 

Assuming your shell is bash, enable the shell option "dotglob". man bash(1)

# shopt -s dotglob

then run the rsync command

# rsync -a /source/* /destination/

It should copy all files and directories including hidden ones under 
/source with fred:fred ownership to /destination, but leaving the 
directory owned by mary:mary.

-- 
Keith






More information about the ubuntu-users mailing list