Реализует ли этот пример то же, что и `ln -sr`?

Из руководства 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 ? Спасибо.

-2
05.07.2016, 00:05
1 ответ

Нет, функция оболочки ln - remote дает вам средства для создания относительных символических ссылок, в которых целевой путь не будет иметь разрешенные символические ссылки, которые по умолчанию ln -r будет делать .

И это показывает вам, как вы могли бы написать функцию, которая использует больше параметров из readpath на тот случай, если вам понадобится еще больше контроля над выходным именем файла.

1
28.01.2020, 05:17

Теги

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