Subject: Re: cp --no-clobber behavior has changed

From: Michael Stone <[email-masked]>
Date: Fri, 15 Dec 2023 10:56:03 -0500

I tend to think this was a serious mistake: it breaks the behavior of 
existing scripts with no deprecation period. A stated advantage is 
better compatibility with freebsd, but I don't understand why that is 
more desirable than compatibility with all deployed gnu/linux systems? I 
also don't think it's sufficient to try to lawyer out by saying that the 
current behavior was undocumented: the previous documentation said that 
-n would "silently do nothing" and that the return code would be zero on 
success. Logically, unless cp fails to "do nothing", it should exit with 
a zero code.

Such a drastic change in behavior demands a new flag, not a radical 
repurposing of a widely used existing flag.

I was hoping to see more action on this bug, but that hasn't happened. 
I'm not sure I see a way forward for debian other than reverting to the 
old behavior. I am reluctant to do so as that will likely lead to 
divergent behavior between distributions, but breaking scripts without a 
compelling reason is also not good. I would encourage coreutils to 
reconsider the change and finding a non-breaking way forward.

Michael Stone