Voelker, Bernhard wrote: > Jim Meyering wrote: >> Davide Brini wrote: >> ... >> > At least in bash, but I suppose in other shells too, >> > >> > rm -rf #* >> > >> > treats the "#*" part as a comment, and (if you remove the "-f") complains >> > about missing operand to rm. >> >> That is the default, but for an interactive shell, >> that behavior can be changed: >> >> $ echo a b # c >> a b >> $ shopt -u interactive_comments >> $ echo a b # c >> a b # c > > I think Davide's point is not about the # comment ... rm won't see > that on argv anyway. The point is that 'rm -f' does not complain about > missing operands while 'rm' does: > > $ rm > rm: missing operand > Try `rm --help' for more information. > $ rm -f > $ > > According to the info, '-f' just silences error messages for files > which do not exist (and never to prompt for confirmation), but why > should it also affect the "missing operand" message?
Two reasons: - that's what rm -f has always done - because that's more useful. Otherwise, "rm -rf $file_list" would have to be wrapped in code to handle specially the case in which $file_list is empty.