在 William Shott 的The Linux Command Line中,Shotts 指出 Linux 的一个缺陷是文件名,因为它们几乎可以是任何东西。-rf ~
因此,如果他们愿意,可以命名一个文件。rm
然后他说要考虑如果在该文件上运行会发生什么。所以我猜它会删除用户主目录中的所有文件。但我想这意味着 bash 无法区分选项和文件名?这对我来说似乎很奇怪。
在 William Shott 的The Linux Command Line中,Shotts 指出 Linux 的一个缺陷是文件名,因为它们几乎可以是任何东西。-rf ~
因此,如果他们愿意,可以命名一个文件。rm
然后他说要考虑如果在该文件上运行会发生什么。所以我猜它会删除用户主目录中的所有文件。但我想这意味着 bash 无法区分选项和文件名?这对我来说似乎很奇怪。
要删除
~
您需要的所有文件rm -rf ~
。你的例子不会发生任何严重的事情。看:
Shell 将所有看起来像选项的东西都视为选项。所以你不能通过
例如。
rm
无论如何,运行命令时需要非常小心空格。看到最近的问题Ubuntu 恢复到 fabric(?)
如果您询问
-rf ~
文件,那将不是问题。要删除名称中带有空格的文件,您需要将其放在引号中,或者转义空格:rm "-rf ~"
或rm ./-rf\ ~
.