Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Somehow a file named -]???????q got created on my terminal. I tried rm -f "-]???????q" (in double quotes), but it did not get deleted. (Error:: rm: invalid option -- ]). How do I delete it?

share|improve this question

3 Answers 3

up vote 12 down vote accepted

For example, with:

rm -- '-]???????q'

Where -- means: "stop parsing options".

share|improve this answer
    
thanks, works fine! –  JP19 Jan 6 '11 at 15:49
    
Indeed, I ran into a similar problem not even thinking about - being a switch. I swear I spent like 2 hours trying to figure it out. –  Jeff F. Jan 6 '11 at 17:11
    
Many applications use --, guess it's a kind of de facto standard due to the getopt function. –  cYrus Jan 6 '11 at 18:42

You can either use the file name with rm or the inode number with find like :

rm -- -]???????q
# or
  -> ls -i                                                                                                                         
47984689 blah.ui  47983771 __init__.py  
47983773 testpy.e4p  47985161 Ui_blah.py

  -> find -inum 47983773                                                                                                           
./testpy.e4p

  -> find -inum 47983773 -exec rm -i '{}' \;
#or
  -> find -inum 47983773 -delete
share|improve this answer

or

rm ./"-]???????q"

double quotes prevent the shell from expanding interrogation marks; for example, if you had another file called -]foobar.q:

$ touch ./"-]???????q" ./-]foobar.q
$ echo ./-]???????q
./-]foobar.q ./-]???????q
share|improve this answer
    
+1: Right, the quoting is desirable. –  cYrus Jan 6 '11 at 18:44
    
Oh. I put the quotes, but was missing the ./ –  JP19 Jan 7 '11 at 4:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.