如何删除以破折号开头的文件(在类 Unix 模式下)

How to remove a file beginning with a dash (in Unix like mode)

我不小心在 GitBash(类 Unix 环境)中创建了一个名为 - -l 的文件(我完全不知道我一开始是怎么做到的:)

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

我想删除(删除)那个 - -l 文件。

我尝试了几种方法,但都不成功。例如

rm "- -l"
rm "-\ \-l"
rm -\ \-l

这些都没用。

请问如何删除 - -l 文件?

谢谢!

试试这个:

rm ./-\ -l

或者这个:

rm -- -\ -l

第一个解决方案告诉程序您正在当前目录中查找文件,因此暗示参数不是一个选项。

第二个解决方案使用 -- 告诉程序以 - 开头的后续参数不是选项。

使用双连字符 (--) 停止标志解析:

rm -- -\ -l

或者,您甚至可以使用制表符完成:

rm -- \- # Then press TAB immediately after typing the final -

这假定这是目录中唯一带有前导连字符的文件。 Bash 足够聪明,可以自动转义文件名中间的 space。