Символические ссылки работают при совместном использовании с Windows или Linux (smb), но прерываются при совместном использовании с Mac (afp или smb)
На Mac у меня есть общая папка ~\Documents. Есть две подпапки, Data и Data_2011, первая из которых содержит папки файлов за последние несколько лет, а вторая содержит символические ссылки на папки в папке Data, которые были обновлены с 1 января 2011 года. Ссылки были созданы со стандартным Команда ln -s.
Когда я монтирую общую папку "Документы" на компьютере Windows, ссылки работают. Когда я монтирую на Linux с помощью smb, ссылки работают. Когда я использую эти ссылки непосредственно на хостинге Mac, они работают. Однако, когда я монтирую папку "Документы" с удаленного Mac, программные ссылки не работают. Чтобы было понятнее, я монтирую папку "Документы", перейдя в Finder > Connect to Server > afp://xxx.xxx.xx.xx/ или smb://xxx.xxx.xx.xx/Documents
Любые идеи о том, как заставить эти программные ссылки работать при совместном использовании на удаленном Mac?
-Sibo
1 ответ
Общий доступ к файлам в Mac OS предоставляет символические ссылки в качестве реальных символических ссылок.
Если я подключу один Mac к другому, используя AFP или SMB, я могу это подтвердить.
Обратите внимание, что символические ссылки разрешаются клиентом - даже в случае совместного использования файлов это означает, что относительные пути в символических ссылках могут быть хитрыми, а в этом случае, связанных с общим доступом к файлам, это означает, что клиентский компьютер должен иметь возможность посмотрите целевой файл (целевой файл также должен находиться в папке, к которой открыт общий доступ и смонтирован), и путь должен быть таким же.
Например, если я создаю текстовый файл с именем "foo" в моем домашнем каталоге, тогда выполните "ln -s foo symlink", чтобы создать ссылку на него с именем symlink, затем смонтируйте этот домашний каталог со второго компьютера и выполните "ls -l"это отображается как"symlink@ -> foo", и если я поймаю файл, я смогу прочитать его. Но если я создаю символическую ссылку как "ln -s /Users/matt/foo symlink", то на втором компьютере ls -l показывает ее как "symlink@ -> /Users/matt/foo", а cat говорит "cat: символическая ссылка: Нет такого файла или каталога ". Это связано с тем, что на втором компьютере / Users / matt является локальным домашним каталогом, в котором нет файла с именем foo (и, если это произойдет, все, что разрешит символическую ссылку, увидит локальный foo, а не foo, общий для первого компьютера),
Таким образом, в основном: вы можете использовать "ls -l", чтобы увидеть, куда указывает символическая ссылка, и заметить, что клиентский компьютер разрешит символическую ссылку и попытается открыть любой файл с таким именем, который может или не может быть тем, что вы ожидали.
(Вероятно, причина того, что ваш тест работал на вашем компьютере с Linux, а не на вашем Mac, состоит в том, что на компьютере Linux установлено больше общих сетевых ресурсов или с другими именами, так что целевое имя символической ссылки было допустимым именем файла на компьютере Linux, но не на Mac.)