To delete a file whose file name begins with "-":
rm -- -bad-file-name
Use shell wildcards, "?" for one character and "*" for zero or more characters. For example, if the file name "bad file name" can't be deleted, one of the spaces may in fact contain a hexademical value. Try:
caution: use ls bad?file?name first to make sure you are not matching more files than you think with wildcards before deleting them.