Символические ссылки, почему это не работает:

me$ ln -s ~/x/y/ ~/Desktop/
ln: /Users/me/Desktop//: File exists

Почему эта попытка создать символическую ссылку на ~/x/yрабочий стол теперь работает? Единственный способ, которым я могу получить что-то вроде символической ссылки, таков:

ln -s * ~/Desktop/

Я в замешательстве, в Ubuntu это было очень просто.

Ответы (2)

В качестве альтернативы вы можете сделать

ln -s ~/x/y ~/Desktop/

(обратите внимание, что после ~/x/y/ нет символа косой черты '/').

Я думаю, что сообщение об ошибке не самое информативное, но я понимаю его так: если вы ставите косую черту в конце, вы имеете в виду содержимое своего каталога (в данном случае ~/x/y), но если вы опустите это, вы имеете в виду сам каталог.

Конечно, это не так. Вы сделали ln -s ~/Desktop/symlink ~/Desktop/, что создает символическую ссылку на себя (там уже есть файл ~/Desktop/symlink, вы не можете связать его с самим собой). Если вы ln -s ~/tmp/symlink ~/Desktop/это сделаете, это должно сработать.
Хм, теперь он позволяет мне сделать символическую ссылку, но символическая ссылка показывает значок файла по умолчанию (вместо значка папки), и попытка открыть символическую ссылку показывает ошибку
какого типа файл, на который вы пытаетесь сделать ссылку? Я следовал вашей первоначальной последовательности: mkdir -p ~/x/y; ln -s ~/x/y ~/Desktop/и все было создано, как и ожидалось, со значком каталога символической ссылки с именем yна моем рабочем столе. Я могу дважды щелкнуть этот каталог, и он открывается нормально. Кроме того, когда я это делаю, ls -la ~/Desktop/yя получаю lrwxr-xr-x 1 me staff 15 27 Oct 20:47 /Users/me/Desktop/y@ -> /Users/me/x/yответ. Можете ли вы точно показать шаги, которые вы предприняли (в идеале полный текст окна вашего терминала)?
Опять же, можете ли вы вставить команды и их вывод точно так, как вы их напечатали? Трудно сказать, не видя их.
Вот мой вывод терминала. Получение той же ошибки, что и @Tor при попытке открыть символическую ссылку.
Хм... Буду с вами честен. Я проделал то же самое в своей системе (OSX 10.9), и все работает отлично... превосходит меня!
Ага, у меня проблема была с пустой папкой. А вот папка с содержимым работала нормально. Последнее - мой «прецедент», так что все в порядке.

ln -s ~/x/y/ ~/Desktop/пытается создать символическую ссылку ~/Desktop/на ~/x/y/, что не похоже на то, что вы хотели, и действительно невозможно, поскольку ~/Desktopсуществует (как указано в ошибке).

Чтобы создать символическую ссылку внутри ~/x/y/, ~/Desktop/вам нужно дать ей имя следующим образом:

ln -s ~/x/y/ ~/Desktop/mysymlink

Это создает символическую ссылку mysymlinkна вашем рабочем столе, которая ссылается на файлы ~/x/y/.