LINUX.ORG.RU

Не могу сообразить, относительная символическая ссылка

 , relative,


0

1

Возможно ли создать относительную ссылку, когда находишься в другой директории? Например:

$ mkdir ./Desktop/test/aaa -p
$ echo "Hello" > ./Desktop/test/aaa/file
$ ln -sr .....

T.е. нужно создать ./Desktop/test/link с относительным путем ./aaa/file

Без перехода в локацию ./Desktop/test (без cd или pushd), это главное условие.

★★★★★
SYNOPSIS         

   ln [OPTION]... [-T] TARGET LINK_NAME
   ln [OPTION]... TARGET
   ln [OPTION]... TARGET... DIRECTORY
   ln [OPTION]... -t DIRECTORY TARGET...

DESCRIPTION

   In the 1st form, create a link to TARGET with the name LINK_NAME.
   In the 2nd form, create a link to TARGET in the current directory.
   In the 3rd and 4th forms, create links to each TARGET in
   DIRECTORY.  Create hard links by default, symbolic links with
   --symbolic.

Похоже, нужно именно первый вариант применить. Пути так и так придëтся относительно текущего каталога указывать, но в итоге ссылки будут куда надо откуда надо указывать.

yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 2)

Конечно. Вот тебе упрощённое правило: ln -s <какой_путь_поместить> <в_какой_файл>. В твоём случае, находясь в любой директории выполняешь ln -s aaa/file [абсолютный путь, если нужен]Desktop/test/link.

anonymous
()
Ответ на: комментарий от yars068

Нет, текущий каталог для симлинка значения не имеет, путь считается относительно симлинка. У программы ln есть костыль в виде ключа -r, при котором она пытается сконвертировать данный ей относительно текущего путь в путь относительно симлинка, но это не свойство симлинков а дополнительная обработка в ln.

У автора проблема в том что он как раз этот -r указал.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)