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

时间:2015-05-07 15:38:02

标签: linux unix escaping git-bash rm

我不小心在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个文件。

我尝试了几种但没有运气。 e.g。

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

这些不起作用。

请如何删除- -l文件?

谢谢!

2 个答案:

答案 0 :(得分:2)

试试这个:

rm ./-\ -l

或者这个:

rm -- -\ -l

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

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

答案 1 :(得分:2)

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

rm -- -\ -l

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

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

这假定该目录中唯一带有前导连字符的文件。 Bash足够智能,可以自动转义文件名中间的空格。