Subject: rm should not prompt if ! isatty(2)

From: John Wiersba <[email-masked]>
Date: Wed, 6 Jan 2021 18:56:02 +0000 (UTC)

$ /bin/rm --version
rm (GNU coreutils) 8.30

$ uname -a
Linux xxx 5.4.0-59-generic #65-Ubuntu SMP Thu Dec 10 12:01:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID:    Linuxmint
Description:    Linux Mint 20
Release:    20
Codename:    ulyana

$ touch asdf && chmod a-w asdf && rm asdf 2>&1 | catrm: remove write-protected regular empty file 'asdf'?          # should *not* prompt

If the prompt cannot be seen, then it can't be properly answered, so there is no point in prompting and consequently leaving the user with a hanging command and no way to know what's being expected of them.  Instead rm should attempt to remove the file and succeed or fail based on the result.  Same for any other commands (mv, cp) in similar situations.

I know about the options -f and --interactive=never, but they shouldn't be needed in this case.

Thanks!