当前位置: 首页>>技术教程>>正文


删除名为〜的文件夹

, ,

问题描述

这是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 ~,因为这将删除我的主目录。

我该怎么办?对我来说这不是问题,只是一个eye-sore。

最佳解决办法

rm -R ./~

这将使它在当前文件夹中查找~

次佳解决办法

我之前使用过rm犯了一些愚蠢的错误,这里有一些我多年来学到的一些提示,试图让你的数据免于意外事故:

  1. 使用像Nautilus这样的图形解决方案。 Soft-delete它到垃圾桶。然后当你知道你没有将你的$HOME移动到垃圾箱里时(一切都会开始崩溃并看起来很时髦),清空垃圾桶。

  2. 移动而不是删除。使用mv重命名目录,例如:

    mv ./\~ ./a-nice-sensible-directory-name
    

    然后删除它。

  3. 如有疑问,请在处理潜在的fubars时使用-i标志。它会提示您删除每个文件,并且应该让您很快知道是否会发生错误。

    oli@bert:~/Desktop$ rm -rfi ./del/
    rm: descend into directory `./del'? y
    rm: remove regular file `./del/output2.pdf'?
    

第三种解决办法

精彩问题:)

您可以通过转义波形符来删除目录:

bash,rm,ubuntu

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 {} \;

优点

  • 它适用于您可以拥有的wathever花式名称。

  • 应该是安全的,因为inode号是唯一的(-xdev:不要下载其他文件系统上的目录),你可以先测试搜索,以防万一,删除-exec rm -rf {} \;

缺点

  • 在具有大量文件和/或目录的目录中执行find .将花费大量时间和磁盘读取。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/3071.html,未经允许,请勿转载。