Обновить устаревшую символическую ссылку Linux - PullRequest
3 голосов
/ 23 февраля 2012

Есть ли способ обновить символическую ссылку после того, как она изменилась или устарела?

У меня есть скрипт, который указывает на ссылку:

/apps/myapps/release/current/....

Где текущая символическая ссылкауказывая на то, что последний выпуск

Позже я пытаюсь использовать эту ссылку таким образом, как

apps/myapps/release/current/scripts/start.sh

Но если у меня есть current в качестве рабочего каталога, изменение ссылки выиграет 't изменить что-либо.

Для того, чтобы это изменение вступило в силу, мне нужно было бы перейти к apps / myapps / release и затем вернуться к scripts, чтобы получить доступ к start.sh.

* 1017.* Я уверен, что должен быть лучший способ.

Ответы [ 3 ]

7 голосов
/ 23 февраля 2012

Может быть,

cd `pwd`

было бы идеально.Позвольте мне взглянуть:

cd /tmp
mkdir a
mkdir b
touch a/OLD
touch b/NEW
ln -snf a cur
cd cur
ls # shows OLD
ln -snf b /tmp/cur
ls # shows OLD
cd `pwd`
ls # shows NEW
3 голосов
/ 23 февраля 2012

Формулировка в вашем вопросе немного расплывчата, но из названия вашего вопроса мой ответ:

ln -f -s /apps/myapps/new/link/target mylink
1 голос
/ 21 февраля 2014
cd `pwd`

не будет работать в случае, когда вы находитесь в символической ссылке, ваш скрипт обновляетчто я сделал для решения этой проблемы:

PROMPT_COMMAND="cd \`pwd\`"
...