Почему конечный слэш в ln -s имеет значение?
Допустим (гипотетически), что я хотел сделать символическую ссылку на папку "Мои документы" на рабочем столе. Я бы сделал это:
cd ~/Desktop
ln -s ~/Documents
который создаст символическую ссылку "Документы" на моем рабочем столе.
Однако, когда я делаю это (обратите внимание на косую черту после ~/Documents
:
cd ~/Desktop
ln -s ~/Documents/
Я получил:
ln: ./: File exists
Как так? Почему в этом случае имеет значение косая черта и что вообще означает косая черта?
1 ответ
Как отмечено в комментариях, конечная косая черта зависит от приложения. На моей системе (CentOS 5) оба работали нормально.
В этом случае я бы сказал, что ln интерпретирует ~/Documents/
в качестве пути и с использованием имени файла по умолчанию .
для ссылки на текущий каталог, для эффективного комбинированного пути ~/Documents/.
, Поскольку вы не указываете имя целевой ссылки, она выбирает ту, которая соответствует "заданному" имени файла, .
, который уже существует.
Я получаю ошибку, аналогичную вашей, когда я указываю ~/Documents/.
в явном виде.
Вы можете решить эту проблему, указав имя ссылки для явного создания. ln -s ~/Documents/ Documents
должен работать на вас.