Ответы:
Это не ошибка. Вариант использования для случая, когда вы хотите связать файл с тем же базовым именем, но в другом каталоге:
cd /tmp
ln -s /etc/passwd
ls -l passwd
lrwxrwxrwx 1 xxx xxx 11 Jul 29 09:10 passwd -> /etc/passwd
Это правда, что когда вы делаете это с именем файла, находящимся в том же каталоге, он создает ссылку на себя, которая не приносит много пользы!
Это работает независимо от того, используете ли вы символические или жесткие ссылки.
Конечно, самый простой способ узнать это - попробовать и посмотреть. Когда второй аргумент не указан, ln
в текущем каталоге будет создана ссылка с тем же именем, что и в оригинале:
$ ln -s /etc
$ ls -l
lrwxrwxrwx 1 terdon terdon 4 Jul 29 16:09 etc -> /etc
Это также объясняется в man ln
:
Во 2-й форме создайте ссылку на TARGET в текущем каталоге.
«Вторая форма» относится к:
ln [ОПЦИЯ] ... TARGET (2-ой класс)
ln -s /path/to/file
это сокращение отln -s /path/to/file .
. Какls
это сокращенно дляls .
.