在威廉·肖特的Linux 命令行Shotts 指出,Linux 的一个缺陷是文件名,文件名几乎可以是任何东西。因此,人们可以-rf ~
随意命名文件。然后他说,考虑一下如果有人运行rm
该文件会发生什么。所以我猜它会删除用户主目录中的所有文件。但我猜这意味着 bash 无法区分选项和文件名?这对我来说似乎很奇怪。
答案1
要删除~
您需要的所有文件rm -rf ~
。
您的示例不会发生任何严重的事情。请参阅:
pilot6@Pilot6:~/test$ ls
-rf~
pilot6@Pilot6:~/test$:rm -rf~
rm: invalid option -- '~'
Try 'rm ./-rf~' to remove the file '-rf~'.
Try 'rm --help' for more information.
pilot6@Pilot6:~/test$ rm ./-rf~
pilot6@Pilot6:~/test$ ls
pilot6@Pilot6:~/test$
Shell 将所有看起来像选项的东西都视为选项。因此,您不能通过以下方式创建文件
touch -rf~
例如。
rm
无论如何,运行命令时需要非常小心空格。
查看最近的麻烦Ubuntu 恢复到结构(?)
如果您询问-rf ~
文件,那么这不会是个问题。要删除名称中带有空格的文件,您需要将其放在引号中,或者转义空格:rm "-rf ~"
, 或rm ./-rf\ ~
。