删除一个名为〜的文件夹

时间:2018-08-13 13:18:20

标签: bash rm

我的bash脚本中有一个错误,该错误创建了名为

的文件夹
~

无论如何,这导致了我执行以下命令的另一个问题:

rm -fr ~

ooopsss删除了我的主文件夹...

所以我的问题是:

为什么rm在别名上而不是在我所在的实际文件夹上起作用?

您可以通过以下方式复制它:

cd /tmp/
mkdir "~"
which rm ~

现在您将看到其中的输出rm〜 指向实际的主文件夹,而不是tmp中创建的〜

2 个答案:

答案 0 :(得分:6)

~在被调用之前被shell扩展为主目录名称​​ rm并未意识到。

可以通过用引号引起来抑制此类魔术字符的扩展:

rm

答案 1 :(得分:4)

rm -R ./~

这将使它在当前目录中查找〜。如果您运行

rm -rf ~

您要删除原始的〜,因此您需要使用./~间接

发生这种情况是因为特殊字符的扩展