This question already has an answer here:
I have accidentally created a file in GitBash (a Unix like environment) with the name - -l
(I have absolutely no idea how I managed to do this in the first place :)
Johnny (master #) scipy-tentative-numpy-tutorials $ ls -l
total 1
-rw-r--r-- 1 Johnny Administ 956 May 7 16:24 - -l
-rw-r--r-- 1 Johnny Administ 562 May 7 16:21 README.md
I wish to delete (remove) that - -l
file.
I have tried a few ways but no luck. e.g.
rm "- -l"
rm "-\ \-l"
rm -\ \-l
These didn't work.
Please how do I delete the - -l
file?
Thank you!
Use a double hyphen (
--
) to stop flag parsing:Alternatively, you can even use tab completion:
This assumes that's the only file with a leading hyphen in the directory. Bash is smart enough to automatically escape the space in the middle of the file name.
Try this:
or this:
The first solution tells the program that you're looking for a file in the current directory, thus implying the argument is not an option.
The second solution uses
--
to tell the program that subsequent arguments starting with-
are not options.