Найпростіший спосіб зв’язатися з поточним каталогом як абсолютний шлях, не набираючи весь рядок шляху
ln -s "$(pwd)/foo" ~/bin/foo_link
The target
(Перший) аргумент для ln -s
команди працює щодо місця розташування символічного посилання, а НЕ в поточному каталозі. Це допомагає знати, що, по суті, створене символьне посилання (другий аргумент) просто містить текст, який ви надаєте для першого аргументу.
Тому якщо ви зробите наступне:
cd some_directory
ln -s foo foo_link
а потім перенесіть це посилання навколо
mv foo_link ../some_other_directory
ls -l ../some_other_directory
ви побачите, що foo_link
намагається вказатиfoo
каталог, у якому він перебуває. Це також працює з символічними посиланнями, що вказують на відносні шляхи. Якщо ви зробите наступне:
ln -s ../foo yet_another_link
а потім рухайтеся yet_another_link
до іншого каталогу і перевірте, куди він вказує, ви побачите, що він завжди вказує ../foo
. Це призначене поведінку, оскільки багато разів символічні посилання можуть бути частиною структури каталогу, яка може перебувати в різних абсолютних шляхах.
У вашому випадку, коли ви створюєте посилання, ввівши
ln -s foo ~/bin/foo_link
foo_link
просто містить посилання foo
на його місцезнаходження. Ставлення $(pwd)
перед назвою цільового аргументу просто додає абсолютний шлях поточної робочої директорії, так що посилання створюється з абсолютною ціллю.