10

Симлинки сохраняются ярлыки для относительных путей:

~/foo➤ ln -s . ~/bar/foo
~/foo➤ ls -l ~/bar
total 8
lrwxr-xr-x    1 me  me     1B 15 May 14:38 foo -> .

Файл ~/bar/foo является символической ссылкой на текущий каталог bar , т.е.

Что если я хочу создать символическую ссылку в другом каталоге на каталог, в котором я нахожусь в то время? Поэтому в приведенном выше примере я нахожусь в ~/foo и хочу создать ~/bar/foo как символическую ссылку на ~/foo . Конечно, мой текущий каталог может быть немного длиннее, чем 5 символов, и его не так просто напечатать.

2 ответа2

13

Я бы сказал тип

ln -s $PWD ~/bar/

или же

ln -s `pwd` ~/bar/

Вы могли бы также использовать

ln -s $PWD ~/bar/

но я думаю, вы знали это, и это не то, что вы ищете. Пожалуйста, не могли бы вы обновить свой вопрос, чтобы объяснить, какова ваша цель?

Если путь содержит пробелы, то было бы целесообразно использовать:

ln -s "$PWD" ~/bar/
3

Абсолютно:

ln -s "$(readlink -f .)" ~/bar

(может быть хорошо для общности в сценариях) или просто

ln -s ~/foo ~/bar

Относительно:

ln -s ../foo ~/bar

Заполнение вкладки поможет вам набрать.


Из комментария Гравити и http://lists.gnu.org/archive/html/coreutils-announce/2012-03/msg00000.html:

* Примечательные изменения в выпуске 8.16 (2012-03-26) [стабильный]

...

Теперь ln принимает опцию --relative , чтобы сгенерировать относительную символическую ссылку на цель, независимо от того, как указана цель.

Итак, с этой версией:

ln -s --relative . ~/bar

должно работать (на практике ваш первый пример идентичен добавлению --relative ).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .