删除文件名为“~”的文件

Deleting a file with filename "~"

在 gvim 中用 :w 保存文件时,我想我不小心输入了 :w~,它把文件名保存为 ~。 我没有多想并尝试在终端中删除它,如下所示

rm ~

这变成了灾难性的,因为它被解释为我的主目录 ~/.它从我的主目录中删除了文件。

我的问题是为什么 linux 允许 ~ 作为文件名以及如何从终端删除它。任何命令都将被视为主目录。

Unix 文件系统支持范围广泛的字符,包括符号链接。 要专门针对具有特殊字符(如 unicode 阿拉伯语、中文文本或表情符号)的文件,您需要使用引号

在您的情况下,删除名为 ~

的文件
rm "~"

rm "/path/to/file/in/quotes/~"

注意: 这里我们使用引号是因为我们需要告诉shell提示这是一个文件,而不是~/用户 $HOME 目录。

希望对您有所帮助:)