Я работаю над AIX 6.1 и случайно переименовал /usr/lib/libc.a
к usr/lib/libc.a_
Как только я переименовал, я понял свою глупую ошибку. Почти все команды mv
, cp
, ftp
и т.д. (кроме cd
) перестали работать.
Как мне переименовать libc.a
назад. Без него система вряд ли нормально функционирует :(
Большинство двоичных файлов зависят от libc
библиотека. Чтобы узнать, вы можете использовать ldd /path/to/binary
Похоже, вам нужно загрузить другой образ или live CD. Затем вы можете смонтировать соответствующий раздел (/usr
если он отделен или /
) и переименуйте файл.
Просто разместите это на случай, если кто-то другой найдет эту проблему.
Начиная с версии AIX 5.3, IBM предоставляет оболочку восстановления. recsh
как раз по этому вопросу.
Проверьте Документация IBM.
Пример использования: recsh; cp -p libc.a.new /usr/lib/libc.a; exit
Пытаться while read -r x; do echo $x >> libc.a; done < libc.a_
(Это предполагает оболочку в стиле Борна).
Если это не удается, и вам повезет, ed
или sed
статически связаны попробуйте:
sed libc.a_ > libc.a
или
ed libc.a_
w libc.a
q
также dd if=libc.a_ of=libc.a
я думаю ln
тоже не может быть и речи?
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");'
Загрузитесь с аварийного диска, смонтируйте файловую систему, переименуйте.