Из руководства coreutils о ln
-r
- relative
Создание символьных ссылок относительно расположения ссылки.
Пример:
ln -srv / a / file / tmp ’/ Tmp / file’ -> ’../a/file’
Относительные символические ссылки создаются на основе их канонизированных содержащий каталог и канонизированные цели. То есть все символические ссылки в этих именах файлов будут разрешены. См. Раздел 18.5 [realpath вызов], стр. 161, что дает больший контроль над относительным файлом генерация имени, как показано в следующем примере:
ln - relative () { test "$ 1" = --no-symlinks && {nosym = $ 1; сдвиг; } target = "$ 1"; test -d "$ 2" && link = "$ 2 /." || link = "$ 2" rtarget = "$ (realpath $ nosym -m" $ target "\ --relative-to "$ (dirname" $ link ")") " ln -s -v "$ rtarget" "$ ссылка" }
Используется ли в примере ln - relative ()
то же, что и ln -sr
? Спасибо.
Нет, функция оболочки ln - remote
дает вам средства для создания относительных символических ссылок, в которых целевой путь не будет иметь разрешенные символические ссылки, которые по умолчанию ln -r
будет делать .
И это показывает вам, как вы могли бы написать функцию, которая использует больше параметров из readpath
на тот случай, если вам понадобится еще больше контроля над выходным именем файла.