Comment by diggan
Besides, the common behavior is to do what it says on the tin by default, but offer flags to make cli's "simulate" their run with "--dry-run" or similar.
I'm not sure I know of any utility that would have the opposite behavior than that.
Well, explosives. They do in fact explode (what it says on the tin) but you have to put in some effort to make them do so. Similar to wiping out your codebase when testing an app. Personally I think developer will reduce support load from angry people by adding guardrails. Someone will not have committed their code.
An alternative is to have a check “Are you sure?” Just before delete, with a -fuckit_yolo flag to override the check.
I once had a desktop app and realised over a while that just making copious backups (50, IIRC) meant users were less likely to get angry when they had lots of extra safety, even from their own actions.