我偶尔会创建一些名字奇怪的文件,例如
$ls -rthl
$-rw-r--r-- 1 shamil hep 290 Aug 13 11:58 -rf
有趣的是,无法使用以下命令删除此文件
rm -f -rf
我知道我需要转义“-”之类的特殊符号,所以问题就清楚了。我以前知道解决方案,但后来忘了。
我该如何正确删除它?
我尝试过这样的事情
rm -f \-rf
但无济于事。
答案1
--
切换方式:标志结束,其后的所有内容均被视为文件名.因此你可以这样做:
rm -- -rf
包含文件的完整路径也有效:
rm /full/path/to/-rf
实际上,这有点搞笑,但是这个命令行可以给你答案:)
$man rm | cat | grep -B4 -A3 -- "rm --"
To remove a file whose name starts with a `-', for example `-foo', use
one of these commands:
rm -- -foo
rm ./-foo
答案2
你可以做
rm -rf ./-rf
这将使得-rf
不以 开头-
。
答案3
其他方式:
find -name "-rf" -exec rm {} \;