Не понял, что даёт ключ -n. В справке написано:
-n, --no-dereference treat LINK_NAME as a normal file if it is a symbolic link to a directory
В другой справке:
-f If the target file already exists, then unlink it so that the link may occur. (The -f option overrides any previous -i options.)
-n If the target_file or target_dir is a symbolic link, do not follow it. This is most useful with the -f option, to replace a symlink which may point to a directory.
В opennet:
Считать файл куда обычным файлом, если явно заданный параметр куда является символьной ссылкой на каталог.
Когда куда является каталогом, а не символьной ссылкой на него, неоднозначностей не возникает. Ссылка создается в этом каталоге. Но когда куда является символьной ссылкой на каталог, то возможны две трактовки запроса пользователя. ln может считать dest обычным каталогом и создавать ссылку внутри него. С другой стороны, dest может быть рассмотрен не как каталог — а как собственно ссылка. В этом случае ln должна ее удалить или сделать резервную копию перед созданием новой ссылки. По умолчанию символьная ссылка на каталог считается обычным каталогом.
Но я всё равно не понял:
[root@localhost 000]# mkdir original
[root@localhost 000]# ln -s original linl
[root@localhost 000]# ln -sn linl linl_to_linl
[root@localhost 000]# ln -s linl linl_to_linl_without_n
[root@localhost 000]# ll
total 4
lrwxrwxrwx. 1 root root 8 Aug 26 05:17 linl -> original
lrwxrwxrwx. 1 root root 4 Aug 26 05:18 linl_to_linl -> linl
lrwxrwxrwx. 1 root root 4 Aug 26 05:18 linl_to_linl_without_n -> linl
drwxr-xr-x. 2 root root 4096 Aug 26 05:17 original
Ничего не измениломь, что с ключем -n, что без. Не могли бы вы продемонстировать ситуацию, когда ключ -n повлияет на результат?