删除名为〜的文件夹


30

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

我该怎么办?对我来说这不是一个问题,只是一个令人痛苦的问题。


8
rm -rf如果您输错了打字机,我会避免写有潜在失败风险的东西。考虑进入./~目录并从目录中删除其内容,然后再上移目录并运行rmdir ./~以删除〜目录本身。
adamnfish 2011年

Answers:


58

rm -R ./~

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


哇,直接看事物的方式!赞!
theTuxRacer 2011年

2
这个答案是正确的,但我认为Oli的答案更好,因为它更安全。如果您稍微输入错误此命令,将永久性地破坏系统。
HDave 2013年

44

我之前犯过一些愚蠢的错误,rm因此,这是多年来我学到的一些技巧,它们可以使您的数据免受意外伤害:

  1. 使用Nautilus等图形解决方案。将其软删除到垃圾箱。然后,当您知道自己没有将其$HOME移入垃圾箱(一切都会开始崩溃并看上去很时髦)时,请清空垃圾箱。

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

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

    然后删除它。

  3. 如有疑问,请-i在处理潜在的烟熏卷时使用该标志。它将提示您删除的每个文件,并应很快通知您是否会发生不良情况。

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

1
不能GUI,其ssh终端:P关于的好主意mv。我想我应该用来使rm别名rm -i
theTuxRacer 2011年

7
您可以b鱼ssh://user@ip/folder。不适用于所有内容(例如,如果您需要sudo),但是就可以了。别名-i是一把双刃剑。这很有用,但是当您处理大量文件时,也会非常烦人。也考虑一下-I。并查看man rm更多提示。
奥利(Oli)

+1为移动提示。现在,我想知道为什么没有替代品可以替换rm到(例如)〜/ .Trash。
ShreevatsaR 2011年



6

另一种更复杂的方法是使用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 .在很多文件和/或目录的目录会占用大量的时间和磁盘读取。

我一直对inode感兴趣,想知道是否有可能做到这一点=)
theTuxRacer 2011年

当然,这仅在当前文件系统具有inode概念的情况下才有效(并非Ubuntu支持的所有文件系统都具有该概念-尽管大多数不是vFat和NTFS之类的本地Unix文件系统)
Billy ONeal
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.