Linux:该命令可以“破坏”机器吗?

Linux:该命令可以“破坏”机器吗?

我的服务器(Ubuntu)运行不正常,我认为这是因为我输入了该命令:

mv directory/* /*

答案1

是的,如果您以 root 身份执行此操作,那么事情可能会变得一团糟。如果您考虑一下 shell 将如何扩展它,您可能会将所有内容移到/最后一个目录中/...也许/var

执行ls -Al /并在此处粘贴结果。如果您只看到一个目录,请ls -Al对该目录执行并在此处粘贴结果。

尝试修复此问题的一种方法是找出错误移动的文件和目录,找到它们,然后将它们移回/。您可以执行以下操作:

  1. 查看另一台机器上类似的 Ubuntu 安装并ls -Al /在那里执行操作,看看那里通常有哪些文件和文件夹。
  2. 仍然在另一台运行的 Ubuntu 服务器上,执行echo /*并记下 echo 命令输出中提到的最后一个目录。我一直猜测它会是,/var但这是基于我使用其他 Unices 和发行版(而不是 Ubuntu)的经验。
  3. 返回出现故障的机器,对ls -Al最后一个目录进行检查,看看所有应该在其中的文件和目录是否/现在都在另一个目录中。
  4. 如果您在此子目录中发现丢失的根级目录,请发出命令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”。

相关内容