Символьная ссылка на текущую папку как абсолютный путь без ввода полного пути

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

~/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 ответа

Решение

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

ln -s $PWD ~/bar/

или же

ln -s `pwd` ~/bar/

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

ln -s $PWD ~/bar/

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

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

ln -s "$PWD" ~/bar/

Абсолютно:

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 переключатель).

Другие вопросы по тегам