我需要使用什么命令来删除名为“-rf”的文件?

Pie*_*tte 68 unix rm

我在某个时候做了一些疯狂的事情,-rf在我的文件系统上创建了一个文件。
现在不知道怎么删了。。。

我试过了:

rm "-rf"
rm \-rf
Run Code Online (Sandbox Code Playgroud)

这些只是立即退出,啊!

有谁知道怎么删除这个文件?最好不要意外清理我的整个文件夹。

Jos*_*Lee 128

unlink -rf
Run Code Online (Sandbox Code Playgroud)

或者

rm -- -rf
Run Code Online (Sandbox Code Playgroud)

  • 这是学习 IMO 的最有用的解决方案,因为 '--' 停止处理参数在 GNU 工具中是标准化的 (49认同)

小智 61

另外一个选项:

rm ./-rf
Run Code Online (Sandbox Code Playgroud)

...假设您的当前目录是文件所在的目录。


小智 34

或者,您始终可以编辑其所在的目录并以这种方式删除文件。

vim .
Run Code Online (Sandbox Code Playgroud)

然后删除带有文件的行(使用 D, dd 不起作用)。

  • 不错的把戏![几个没用的字符] (5认同)

小智 25

删除奇怪文件名的通用技术是使用。

 ls -li
Run Code Online (Sandbox Code Playgroud)

找到文件的inode编号然后使用。

find ./ -inum <number of file> -delete
Run Code Online (Sandbox Code Playgroud)

无需记住所有特殊情况。

  • 不知道`find`有删除文件的能力。 (4认同)

Hep*_*ite 17

即使我知道“rm -- -filename”技巧,通常当我以某种方式得到一个带有前导的文件时 - 我想删除它的名称,我启动一个 GUI 文件管理器并从那里开始,以消除机会的错误。

  • 如果它是愚蠢和错误的,也许它应该被否决,但我不相信仅仅因为它“可能行不通”就否决这个答案。这个建议不会有什么坏处。 (12认同)
  • 对于那些没有 X 的人来说,总是有午夜指挥官(或其他基于诅咒的文件管理器)。 (4认同)

Jan*_*Jan 9

如果您只想确定:

 mv -- -rf remove.-rf
 [[check]]
 rm remove.-rf
Run Code Online (Sandbox Code Playgroud)