Можно ли создать относительные символические ссылки из сценария? - PullRequest
3 голосов
/ 22 декабря 2011

Этот вопрос следует за лечением этого вопроса: Символические ссылки не работают, когда ссылка создается в другом каталоге?

Скажем, у меня есть каталог, содержащий проект, и скрипт, который создает символические ссылки из одной части каталога проекта в другую часть. Возможно ли, чтобы эти символические ссылки были относительными (не абсолютными), даже если местоположение сценария полностью где-то еще?

Я заинтересован в том, чтобы сделать это, чтобы каталог проекта можно было перемещать, не разрывая в нем абсолютные ссылки.

Ответы [ 2 ]

3 голосов
/ 22 декабря 2011

Нет ничего особенного в запуске команд из скрипта.Вы просто делаете это.

$ mkdir originals
$ echo "weird" > originals/original.txt
$ mkdir copies
$ ln -s ../originals/original.txt copies/copy.txt
$ cat copies/copy.txt
weird

Обратите внимание, что вам не нужно менять рабочий каталог перед созданием относительных ссылок.Символическая ссылка будет относительной относительно ссылки, а не относительно текущего каталога.

1 голос
/ 22 декабря 2011

EDIT:

@ MДΓΓБДLL правильно указывает, что то, что вы хотите сделать, встроено в функциональность ln.Первый аргумент ln будет целевым значением, используемым при создании ссылки, где бы она ни создавалась.Например:

$ cd /
$ ln -s .. ~/testln
$ cd ~
$ ls -la testln
lrwxrwxrwx 1 xxxxx xxxxx 2 Dec 22 09:29 testln -> ..
...