rm "-rf" probably won't work.
Try:
rm - -rf
Read the man page on rm. The first dash tells rm that all command switches are over and to expect the remains command arguments to be file names. The following is a cut from the rm man page:
NOTES
A - permits the user to mark explicitly the end of any com-
mand line options, allowing rm to recognize file arguments
that begin with a -. As an aid to BSD migration, rm will
accept -- as a synonym for -. This migration aid may disap-
pear in a future release. If a -- and a - both appear on the
same command line, the second will be interpreted as a file.
None of the suggestions involving quoting the '-' will do any good -- the '-' is interpreted by the rm program, not by the shell.
The general solution to this problem is to use
rm ./-rf
or use a full path to the file. It is not necessary to invoke any other program to do the work. This works for rm and for any other program that might have this kind of problem, and you don't need to know any more about how to use the particular program such as whether it honors "--" as an end to the argument list.
Richard