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

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

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

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

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

1 ответ

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

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

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

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

0
ответ дан 25 January 2012 в 21:16

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

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