我的服务器(Ubuntu)运行不正常,我认为这是因为我输入了该命令:
mv directory/* /*
答案1
是的,如果您以 root 身份执行此操作,那么事情可能会变得一团糟。如果您考虑一下 shell 将如何扩展它,您可能会将所有内容移到/
最后一个目录中/
...也许/var
?
执行ls -Al /
并在此处粘贴结果。如果您只看到一个目录,请ls -Al
对该目录执行并在此处粘贴结果。
尝试修复此问题的一种方法是找出错误移动的文件和目录,找到它们,然后将它们移回/
。您可以执行以下操作:
- 查看另一台机器上类似的 Ubuntu 安装并
ls -Al /
在那里执行操作,看看那里通常有哪些文件和文件夹。 - 仍然在另一台运行的 Ubuntu 服务器上,执行
echo /*
并记下 echo 命令输出中提到的最后一个目录。我一直猜测它会是,/var
但这是基于我使用其他 Unices 和发行版(而不是 Ubuntu)的经验。 - 返回出现故障的机器,对
ls -Al
最后一个目录进行检查,看看所有应该在其中的文件和目录是否/
现在都在另一个目录中。 - 如果您在此子目录中发现丢失的根级目录,请发出命令
mv
将它们移回/
。确保不要留下该子目录的正常内容。您不想移动一切出 来/var
进 去/
, 你 只是 想 移动 那些 应该 在 里面 的 东西/
.
请注意,您需要mv
以 root 身份发出该命令(例如,使用sudo
)。
答案2
当然,真正的问题是如何解决这个问题。:)
启动您的 Ubuntu LiveCD,挂载文件系统,然后将根目录的其他内容移出/var
(或移到它们最终所在的位置)。
答案3
重新启动可以解决问题吗?
没机会了。。。你必须将根目录移回根目录。看看发生了什么:
$ mv -v source/* target/*
`source/1' -> `target/3/1'
`source/2' -> `target/3/2'
`source/3' -> `target/3/3'
`target/1' -> `target/3/1'
`target/2' -> `target/3/2'
看看最后两行。这意味着例如“/bin”将移动到您机器上的“/var/bin”。