Мой магический кристалл говорит, что необходимо смотреть на http://www.stunnel.org/static/stunnel.html
В случае, если шар является неправильным, он не причинит боль так или иначе.
Вот то, что происходит. При создании символьной ссылки с относительным путем символьная ссылка будет относительна. Символьные ссылки просто хранят пути, которые Вы даете им. Они никогда не разрешают пути к полным путям. Выполнение
$ 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
У меня была та же проблема. Google привел к этому ответу, но простейшее решение здесь не задокументировано:
ln -sT
-T помогает
man ln:
-T, --no-target-directory
treat LINK_NAME as a normal file always
Просто добавьте это здесь, чтобы любой, у кого возник такой же вопрос, мог найти это:)
{ {1}}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