use*_*476 5 command-line bash delete rm
好吧,我已经使用不同级别的系统管理员近十年了,但我还是陷入了一个古老的错误;虽然我不明白为什么会这样。
我在我的服务器上整理了将近 15 年的 .tar.gz 文件,解压缩它们,然后整理数据。我什至总是使用一个新文件夹作为沙箱。/DATA/RAID1/ROOT/SORTME/BACKOPEN
当我决定删除我知道不需要的更明显的系统文件夹时,我在一个文件夹 ( ) 中,该文件夹包含以前 Ubuntu 安装的未压缩存档。当我跑我rm
也跑完成,但是当它做我没有/bin
,/sbin
或任何命名就像我试图删除那些其他相关的根文件夹。
违规命令:
root@dev1:/DATA/RAID1/ROOT/SORTME/BACKOPEN# rm -rfv cdrom/ boot/ bin/ calpp/ dev/ etc/ ldconfig icd-registration.tgz lib/ lib32/ lib64/ opt/ sbin/ selinux/ share/ srv/ usr/ var/
Run Code Online (Sandbox Code Playgroud)
现在,回想起来,我当然意识到我应该./
在这些目录之前考虑相对路径,但我仍然很困惑,为什么/bin
或者/sbin
当我特别指定bin/ sbin/
并且当时不在时会被删除/
。
在我看来,如果我在我的密码中操作并且没有前面的正斜杠来指定 root 它应该只删除我所在目录中的目录。
谢天谢地/
,我的 ZFS 池中没有单独的名称或任何名称,rm
所以我很好,但我非常希望永远不要再犯这个错误。
像这样搞砸操作系统的想法令人尴尬,我不禁想到除了./
答案之外的其他东西。
我在这里没有注意到什么?
预先感谢您的努力。
更新:
好的,所以我回到家并从自发布以来一直使用的完全相同的 ISO 中重新安装了 14.04。我重新导入了我的 ZFS 池 (/DATA/RAID1|/DATA/RAID2) 并检查了 /DATA/RAID1/ROOT/SORTME/BACKOPEN 才发现我在违规命令中指定的所有目录/文件仍然存在。不想把自己搞得一团糟,我在我的帖子中复制并粘贴了有问题的命令,但是在每个路径/文件参数的前置 ./ 中。它有效并且没有破坏我的操作系统。我还将 rm -rfv 的输出重定向到一个文件以供以后检查。我的操作系统的任何部分都没有被删除,一切都很好。我猜如果硬链接或符号链接是问题,我会遇到同样的问题,但这次没有。情节变厚了。我感觉我可能永远得不到答案,但似乎这只是作为异常事故发生的事情之一。