Linux:那个命令可以“中断”机器吗?

我的服务器(Ubuntu)不正确,我想这是因为我input了这个命令:

mv directory/* /* 

是的,如果你是以root的身份做的话,那真的会搞砸了。 如果你考虑一下shell是如何扩展的话,那么你可能把所有的东西都从/移动到了最后一个目录/可能是/var

做一个ls -Al /并在这里粘贴结果。 如果您只看到一个目录,请执行该目录的ls -Al ,然后在此处粘贴结果。

解决这个问题的方法之一是找出哪些文件和目录被错误地移动,find它们,然后将它们移回到/ 。 你可能会这样做:

  1. 看看另一台机器上Ubuntu的类似安装,并做一个ls -Al /那里,看看通常有什么文件和文件夹。
  2. 另一方面,运行Ubuntu服务器,执行echo /*并loggingecho命令输出中提到的最后一个目录。 我一直在猜测它会是/var但这是基于我在其他Unices和发行版的经验,而不是Ubuntu。
  3. 回到失败的机器上,做一个最后一个目录的ls -Al ,看看是否所有这些文件和目录应该在/现在在另一个目录中。
  4. 如果在此子目录中find缺less的根级目录,请发出mv命令将其移回到/ 。 确保不要单独保留该子目录的正常内容。 你不想把所有的东西都移出/var ,进入/ ,你只是想移动应该在/的东西。

请注意,您需要以root身份发出该mv命令(例如,使用sudo )。

真正的问题当然是如何解决这个问题。 🙂

启动到你的Ubuntu LiveCD,挂载文件系统,并把你的根目录的其他内容从/var (或他们结束的地方)移出。

重新启动会解决这个问题吗?

没有机会..你将不得不将根目录移回根目录。 看,这是发生了什么事:

 $ 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'。