如何重新命名libc.a

我正在AIX 6.1上工作,无意中将/usr/lib/libc.a更名为usr/lib/libc.a_就像我改名一样,我意识到了自己愚蠢的错误。 几乎所有的命令mvcpftp等( cd除外)都停止工作。

我该如何重新命名libc.a 没有它,系统几乎没有function:(

大部分的二进制文件依赖/使用libc库。 要弄清楚,你可以使用ldd /path/to/binary看起来你需要启动另一个映像或live CD。 然后,您可以挂载相关的分区( /usr如果分隔或/ )并重命名该文件。

只是张贴这个以防其他人search这个问题。

至less从AIX 5.3开始,IBM为此问题提供了恢复shell recsh

检查IBM文档 。

使用示例: recsh; cp -p libc.a.new /usr/lib/libc.a; exit recsh; cp -p libc.a.new /usr/lib/libc.a; exit

我猜这也是没有问题的?

 ln -s usr/lib/libc.a_ usr/lib/libc.a 

还是Perl?

 perl -e 'symlink("usr/lib/libc.a_","usr/lib/libc.a");' 

要么

 perl -MFile::Copy -e 'copy("usr/lib/libc.a_","usr/lib/libc.a");' 

尝试while read -rx; do echo $x >> libc.a; done < libc.a_ while read -rx; do echo $x >> libc.a; done < libc.a_ while read -rx; do echo $x >> libc.a; done < libc.a_ (这里假设一个Bourne风格的shell)。

如果失败了,你足够幸运, edsed是静态链接的尝试:

sed libc.a_ > libc.a

要么

 ed libc.a_ w libc.a q 

也是dd if=libc.a_ of=libc.a

从救援盘启动,挂载文件系统,重命名。