Была ситуация, когда кто-то переместил целый корневой каталог в subdir в удаленной системе, таким образом все системные инструменты как CP, mv, и т.д. больше не работали. У нас была активная сессия, хотя, но не мог найти, что способ копировать/перемещать файлы назад с помощью только колотит созданный-ins.
Кто-то знает о способе достигнуть этого?
Я даже думал о копии CP или mv двоичный файл в currentdir с
while read -r; do echo $LINE; done
и затем перенаправьте это в файл, но он не работал. Угадайте из-за всего специального предложения не печатаемые символы в двоичном файле, который не может копироваться/отображаться с помощью эха.
спасибо.
Если вы иметь доступ к другой машине е, одно из решений - загрузить и скомпилировать двоичный файл Busybox . Это будет единый двоичный файл, содержащий большинство общих инструментов, необходимых для восстановления вашей системы. Это может не сработать, если ваша система удалена.
Вот разумная замена гетто для cp
. Вам понадобится echo -E
, если файл заканчивается новой строкой (как большинство текстовых файлов), echo -nE
, если это не так (как большинство двоичных файлов).
echo -nE "`< in.file`" > out.file
/newroot/lib/ld-linux.so.2 --library-path /newroot/lib \
/newroot/bin/mv /newroot/* /
(Аналогично для Solaris, но я думаю, что динамический компоновщик называется ld.so.1
или что-то в этом роде строк.)
Или, если ваша оболочка похожа на sh (не похожа на csh),
LD_LIBRARY_PATH=/newroot/lib /newroot/bin/mv /newroot/* /
Если вы подготовили с предустановленной створкой
, то она статична и имеет встроенную копию ( -cp
).
В противном случае LD_LIBRARY_PATH = / copied / to / path / lib / copied / to / path / bin / cp
может сработать?
Я думаю, что проблема с отсутствием ld-so в ожидаемое место.
/subdir/bin/mv /subdir /
или я что-то упустил в вашем объяснении?