Изменение символических ссылок не работает для каталогов

Чтобы изменить символическую ссылку, можно использовать опцию -fs, чтобы устранить необходимость сначала отключить или удалить старую ссылку. Однако попытка сделать это в каталогах не работает:

$ mkdir dir1
$ mkdir dir2
$ ln -s  dir1 lnk
$ ln -sf dir2 lnk
$ ll
......... lnk -> dir1
$

Почему? Есть ли другой вариант сделать это с каталогами, такими же, как с файлами?

2
задан 25 January 2012 в 23:16

1 ответ

По умолчанию, если вы передадите директорию (или символическую ссылку на каталог) в качестве второго аргумента в команду ln, она создаст ссылку внутри этого каталога с тем же именем, что и первый аргумент. Таким образом, с набором команд, которые вы выпустили, вы должны найти символическую ссылку с именем dir2 внутри dir1.

Вы можете изменить это поведение, используя опцию -T:

-T, --no-target-directory
       treat LINK_NAME as a normal file

Если вы передадите этот параметр во втором вызове ln, то он должен перезаписать символическую ссылку lnk, а не создавать новую символическую ссылку внутри первого каталога.

3
ответ дан 25 May 2018 в 15:08

Другие вопросы по тегам:

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