The Linux kernel "make clean" calls rm -f with no arguments, which apparently is not an error.
diff --git a/toys/posix/rm.c b/toys/posix/rm.c
index 59d5061..c9f741c 100644
--- a/toys/posix/rm.c
+++ b/toys/posix/rm.c
@@ -4,7 +4,7 @@
*
* See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/rm.html
-USE_RM(NEWTOY(rm, "<1fiRr[-fi]", TOYFLAG_BIN))
+USE_RM(NEWTOY(rm, "fiRr[-fi]", TOYFLAG_BIN))
config RM
bool "rm"
@@ -76,6 +76,9 @@
{
char **s;
+ // Can't use <1 in optstring because zero arguments with -f isn't an error
+ if (!toys.optc && !(toys.optflags & FLAG_f)) error_exit("Needs 1 argument");
+
for (s = toys.optargs; *s; s++) {
if (!strcmp(*s, "/")) {
error_msg("rm /. if you mean it");