如何使用 cli 删除名称以“-r”开头的文件

如何使用 cli 删除名称以“-r”开头的文件

我偶尔会创建一些名字奇怪的文件,例如

$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 {} \;

相关内容