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

Мой магический кристалл говорит, что необходимо смотреть на http://www.stunnel.org/static/stunnel.html

В случае, если шар является неправильным, он не причинит боль так или иначе.

110
23.05.2017, 15:40
3 ответа

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

$ pwd
/usr/bin
$ ln -s ls /usr/bin/ls2

создает названную символьную ссылку ls2 в /usr/bin кому: ls(то есть. /usr/bin/ls) относительно каталога, в котором находится символьная ссылка (/usr/bin). Вышеупомянутая команда создала бы функциональную символьную ссылку из любого каталога.

$ pwd
/home/me
$ ln -s ls /usr/bin/ls2

При перемещении символьной ссылки на другой каталог она прекратила бы указывать на файл в /usr/bin/ls.

Вы делаете символьную ссылку, которая указывает на Data, и именование его Data. Это указывает на себя. Необходимо сделать символьную ссылку с полным путем каталога.

ln -s "$(realpath Data)" ~/Data
116
27.01.2020, 19:29

У меня была та же проблема. Google привел к этому ответу, но простейшее решение здесь не задокументировано:

ln -sT 

-T помогает

man ln:

-T, --no-target-directory
    treat LINK_NAME as a normal file always

Просто добавьте это здесь, чтобы любой, у кого возник такой же вопрос, мог найти это:)

{ {1}}
15
27.01.2020, 19:29

lnповедение с относительными путями неинтуитивно. Чтобы восстановить здравомыслие, используйте флаг -r.

cd /run/media/name/exhdd
ln -sr Data/ ~/Data

Пояснение:

   -r, --relative
          create symbolic links relative to link location

Это означает, что lnсделает то, что вы ожидаете. Он примет во внимание, в каком каталоге вы находитесь, в каком каталоге находится цель, и создаст путь относительно каталога, в котором будет ссылка. Поведение по умолчанию (без-r)заключается в интерпретации первого параметра (. ] цель)буквально ,в этом случае вы должны сами построить путь, чтобы он был действителен в каталоге ссылки.

В качестве альтернативы можно использовать абсолютный путь, как указано @SmithJohn

ln -s "$(realpath Data)" ~/Data #bash shell

или

ln -s "(realpath Data)" ~/Data #fish shell
15
27.01.2020, 19:29

Теги

Похожие вопросы