每个命令都返回“没有这样的文件或目录”或“/bin/sh:错误的解释器:没有这样的文件或目录”

每个命令都返回“没有这样的文件或目录”或“/bin/sh:错误的解释器:没有这样的文件或目录”

所以我犯了一个大错误,将 /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

对您可能移动的每个库路径执行此操作。

相关内容