2012-02-23 4 views
3

Есть ли способ обновить символическую ссылку после ее изменения или устаревания?Обновить устаревшую символическую ссылку linux

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

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

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

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

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

Но если у меня есть этот current как рабочий каталог, то при изменении ссылки ничего не изменится.

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

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

ответ

5

Может

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

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

ln -f -s /apps/myapps/new/link/target mylink 
+0

Поэтому, когда я меняю ссылку, я делаю rm, чтобы удалить ссылку, а затем ln -s, чтобы создать новую. Я не вижу, что это будет иначе. Возможно, я не должен был понять, что ссылка устарела. –

+0

Вам не нужно rm. –

1
cd `pwd` 

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

PROMPT_COMMAND="cd \`pwd\`" 
Смежные вопросы