这是输出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 ~
因为那样会删除我的主目录。
我该怎么办?这对我来说不是问题,只是有点碍眼。
答案1
rm -R ./~
~
这将使其在当前文件夹中查找。
答案2
我以前也犯过一些愚蠢的错误rm
,所以这里有我多年来学到的一些技巧,可以尝试保护您的数据免受意外损坏:
使用 Nautilus 等图形解决方案。将其软删除到垃圾箱。然后,当您知道您没有将其移入
$HOME
垃圾箱时(一切都会开始崩溃并且看起来很奇怪),清空垃圾箱。移动而不是删除。使用 重命名目录
mv
,例如:mv ./\~ ./a-nice-sensible-directory-name
然后删除它。
如果有疑问,请
-i
在处理潜在问题时使用该标志。它会提示您删除的每个文件,并会让您很快知道是否会发生不好的事情。oli@bert:~/Desktop$ rm -rfi ./del/ rm: descend into directory `./del'? y rm: remove regular file `./del/output2.pdf'?
答案3
答案4
另一种稍微复杂一点的方法是使用 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 .
在包含大量文件和/或目录的目录中执行此操作将花费大量时间并进行磁盘读取。