Fellows, I don't think
(info "(coreutils) cp invocation")
mentions how
$ touch m
$ cp m n
$ chmod 444 m
$ cp m n #THESE LINES
$ cp m p #MAKE DIFFERENT THINGS
$ ls -l
-r--r--r-- 1 jidanni jidanni 0 07-28 11:20 m
-rw-r--r-- 1 jidanni jidanni 0 07-28 11:21 n
-r--r--r-- 1 jidanni jidanni 0 07-28 11:21 p
All we read is
In the absence of this option, each destination file is created
with the mode bits of the corresponding source file, minus the
bits set in the umask and minus the set-user-ID and set-group-ID
bits. *Note File permissions::.
So it says 'created', but doesn't mention what happens if the destination
already exists.
Yes I am deliberately not using -p here.
(This would also explain the mystery of how openssh-client: /usr/bin/scp works.)
$ cp --version
cp (GNU coreutils) 8.21