所以我犯了一个大错误,将 /lib 和 /opt 文件夹移到了子文件夹中。现在几乎每个命令都返回“没有这样的文件或目录”或“/bin/sh:错误的解释器:没有这样的文件或目录”。我需要将这些文件移回,但我无法运行 mv。我能以某种方式做到这一点吗?还是我应该开始从备份中恢复服务器?
编辑:
我的提供商允许外部访问文件系统,因此我能够将目录移动到主目录,一切都恢复正常:)谢谢帮助。
答案1
步骤 1: 从 live-cd 启动...
第 2 步:安装硬盘
步骤3:将文件移回。
步骤 4:永远不要再这样做。
(如果您需要具体说明...只需询问)
答案2
您可能能够通过以下方式撤消移动:
export LD_LIBRARY_PATH=/subfolder/lib
/subfolder/lib/ld-linux.so.2 /bin/mv /subfolder/lib /lib
...将 /subfolder 替换为您移动 /lib 到的任何目录。如果是 64 位 Linux 主机,请尝试使用 ld-linux-x86-64.so.2。
我还没有完全测试过这一点,因为我不会为了这样做而破坏系统!
答案3
不要注销该 Putty 会话!您可能无法返回服务器。
您可以运行 busybox 吗?(它通常位于 /bin 中,因此请尝试“/bin/busybox”)
Busybox 几乎完全独立,并且具有大多数标准 Unix 命令的内置版本。Busybox 不带任何参数即可为您提供它可以模拟的所有命令的列表。
您运行类似“/bin/busybox {command}”的命令。
例如:“/bin/busybox mv file1 file2”
如果您的系统上有它,您可能可以用它将所有内容移回原来的位置。
答案4
您有一个名为的工具sln
,它是静态链接的 ln。您可以使用它将文件夹符号链接到上一个位置,然后从那里开始工作。所以,如果您移动/lib
到/datadrive/lib
然后破坏了系统,您可以输入以下内容来暂时修复它:
sln /datadrive/lib /lib
对您可能移动的每个库路径执行此操作。