一个缺陷程序已经创build了一个名为~的目录。
如果我做rm \~然后TAB它转换为~/这是用户主目录。
如何删除这样的目录?
更新
看到我的答案,解决了这个问题。 它基于发布的答案。
rmdir ./~
所以,基本上,你指定的path是这样的,不会在“〜”上扩展shell。
使用rmdir '~'应该可以做到。
作为任何文件的一般答案。
ls -i
find -maxdepth 1 -inum [number] -exec rm -r {} \;这个数字,并把它放在find -maxdepth 1 -inum [number] -exec rm -r {} \;
我已经确认了以下的作品。 你也可以使用tab完成。
rm ./~
没有按tab,请尝试
rmdir \~
给绝对的道路解决问题。
rmdir /home/user/~
而TAB并没有把它改写成别的东西。
shell在几个保留符号上执行通配符扩展,代字号就是一个例子。 当壳看到
$ rm ~
它将代字符扩展到用户主目录的path。 实际上,shell“看到”这个,而是:
$ rm /home/$USER/
要防止通配符扩展,请使用\转义符号,如下所示:
$ rm \~
这将确保shell从字面上处理。
你有两个选项可以删除名为~的目录 :
对于非空目录,将recursion标志传递给rm :
$ rm -r \~
而对于一个空目录:
$ rmdir \~
首先想到的将是“不使用标签”,但未经testing。 更好的select:安装“MC”(午夜指挥官),并从其界面删除目录。 尽pipe它有一些解决方法。