删除名为〜的文件夹
这是ls -l
的输出
ls -l total 53484 drwxr-xr-x 3 root root 4096 2011-02-10 05:59 ~ -rw-r--r-- 1 root root 54313810 2011-02-13 05:09 jobs.jar -rw-r--r-- 1 root root 384035 2011-02-15 05:33 jobsLog.out
我不能做rm -rf ~
因为那会删除我的主目录。
我该怎么办? 这对我来说不是问题,只是眼睛疼痛。
rm -R ./~
这将使它在当前文件夹中查找~
。
我以前用rm
做过愚蠢的错误所以这里有一些我多年来学到的一些提示,试图让你的数据免于意外事故:
-
使用像Nautilus这样的图形解决方案。 将其删除到垃圾箱。 然后,当你知道你没有将
$HOME
移动到垃圾箱中时(一切都会开始崩溃并且看起来很时髦),清空垃圾桶。 -
移动而不是删除。 使用
mv
重命名目录,例如:mv ./\~ ./a-nice-sensible-directory-name
然后删除它。
-
如果有疑问,在处理潜在的fubars时使用
-i
标志。 它将提示您删除每个文件,并且应该让您很快知道是否会发生不良事件。oli@bert:~/Desktop$ rm -rfi ./del/ rm: descend into directory `./del'? y rm: remove regular file `./del/output2.pdf'?
精彩问题:)
您可以删除目录 逃离波浪号:
rm -rf \~
这适用于各种特殊字符。
您可以将文件夹名称简化为撇号:
rm '~'
另一种,更复杂的方法是使用inode数字:
$ ls -li total 24 7146369 drwxr-xr-x 4 user staff 136 Jan 19 21:50 ~ $ find . -xdev -inum 7146369 -exec rm -rf {} \;
优点
- 它适用于您可以拥有的华丽名称。
- 应该是安全的,因为inode号是唯一的(
-xdev
:不要下载其他文件系统上的目录),你可以先测试搜索,以防万一,删除-exec rm -rf {} \;
。
缺点
- 做
find .
在具有大量文件和/或目录的目录中将花费大量时间和磁盘读取。