删除名为“-d”的文件

删除名为“-d”的文件

可能重复:
如何从 bash 中删除名为“-p”的文件?
如何在 Linux 上删除此名称的文件:-]???????q
我需要使用什么命令来删除名为“-rf”的文件?

我不小心创建了一个名为:-d 的文件

我尝试使用单引号和双引号以及通配符来删除它,但每次“rm”都会出现此错误:

警告:--directory (-d) 选项未记录且无操作。使用 -rf 删除非空目录 rm:缺少操作数 尝试“rm --help”获取更多信息。

我该如何删除该文件?

答案1

rm -- -d

--表示“选项结束”。命令行中此字符之后的所有内容均被解释为参数(即您的例子中的文件名),而不是选项。

答案2

rm ./-d

就是你的问题的答案。

答案3

在这种特定情况下,使用“--”是迄今为止最简单的方法。但是,如果您偶然发现包含不可打印控制字符的文件,更通用的解决方案是通过 inode 引用该文件:

% ls -ali aFileWithFunnyCharacters
      9215 -rw-r-----   1 chris  chris         0 Sep  8 16:55 aFileWithFunnyCharacters
% find . -xdev -inum 9215 -exec rm {} \;
% ls -ali aFileWithFunnyCharacters
aFileWithFunnyCharacters: No such file or directory

答案4

Gnu-find 有一个 -delete 选项:

find -name "-d" -delete

或者你可以尝试

find -name "-d" -exec rm {} ";" 

但是上面的 -- 解决方案更短,并且许多程序都使用 -- 来停止解释标志的方法,使用 getopt 库,因此学习它通常是一件有用的事情。

但 find/-delete 也是非常有用的。请注意,这两个示例将递归删除名为“-d”的文件,这种情况可能不经常发生,但如果您恰好有一个名为“-d”的文件,您可能会有更多这样的文件。:)

相关内容