我在以 root 身份登录时意外地在 debian 6 中的 / 目录中执行了 rm *。它没有删除任何目录,但我似乎搞砸了一些东西。
rm: cannot remove `132966': No such file or directory
rm: cannot remove `bin': Is a directory
rm: cannot remove `boot': Is a directory
rm: cannot remove `dev': Is a directory
rm: cannot remove `etc': Is a directory
rm: cannot remove `home': Is a directory
rm: cannot remove `lib': Is a directory
rm: cannot remove `lib32': Is a directory
rm: cannot remove `lost+found': Is a directory
rm: cannot remove `media': Is a directory
rm: cannot remove `mnt': Is a directory
rm: cannot remove `opt': Is a directory
rm: cannot remove `proc': Is a directory
rm: cannot remove `root': Is a directory
rm: cannot remove `sbin': Is a directory
rm: cannot remove `selinux': Is a directory
rm: cannot remove `srv': Is a directory
rm: cannot remove `sys': Is a directory
rm: cannot remove `tmp': Is a directory
rm: cannot remove `usr': Is a directory
rm: cannot remove `var': Is a directory
它正在运行网站,一切正常。但是当我尝试运行任何命令时,都会出现这种情况。
root@host:/# dir
-bash: /bin/dir: No such file or directory
root@host:/# dir
-bash: /bin/dir: No such file or directory
root@host:/# dir
-bash: /bin/dir: No such file or directory
root@host:/# dir
-bash: /bin/dir: No such file or directory
root@host:/# dir
-bash: /bin/dir: No such file or directory
root@host:/# apt-get
-bash: /usr/bin/apt-get: No such file or directory
bin 目录仍然存在,dir 也在那里。只是由于某种原因它不起作用。
我无法再连接到 SSH,但我已经连接并且看起来 SCP 仍然可以访问所有目录,但没有命令起作用。
我该怎么办?我设置了很多东西,我不想丢失它们。有什么办法可以解决这个问题吗?
编辑:看来我仍然可以将文件上传到服务器。
答案1
拿一袋薯片、一瓶啤酒,打开你最喜欢的电影,然后看一看。之后你可能已经冷静下来,准备重新安装你的 Debian。而且,如果你不想变胖,以后就不要再犯这样的错误了。
答案2
这让我想起了我之前说过的一篇关于同样错误的帖子。我找不到原始链接,但下面有一个。关于它的一些有趣的观点:
- 一旦
rm -rf /
中断,系统仍会运行,因为所有内容仍加载在 RAM 中。不要急于做任何事情,例如退出 shell,否则您可能无法再次登录。 - 现在,需要做的是找到一种方法来恢复已删除的内容。如果您仍有
scp
,或者正在运行指向有效路径的 ftp/ssh 服务器,这可能很容易;如果您丢失了/etc
大部分二进制文件,这可能很难。 - 请记住,您仍然拥有 shell,因此您可以使用
echo
和 重定向来创建文件。您仍然可以cd
访问目录,甚至可以使用 读取文件while read line; do echo $line; done < file
。您可能会错过的是mkdir
,这是 VAX 管理员恢复以便能够重新创建 的第一件事之一/etc
。
这段历史可以找到这里。
祝你好运。
更新:
我找到了完整故事的链接:这里。
答案3
如果 scp 仍然有效,我可以想象在虚拟机中安装相同版本并将所有丢失的文件复制到已 rm 的机器。毕竟,加载您上次每晚做的备份肯定会更容易吗?
答案4
类似情况,我回答过这里,很确定这就是你所做的……只要你没有递归(-r)或强制(-f)你的 rm *。
希望这能帮助更多陷入同样困境的人。