2011-01-24 25 views
5

Na komputerze Mac mam udostępniony folder, ~ \ Documents. Istnieją dwa podfoldery Data and Data_2011, z których pierwsze zawierają foldery plików z ostatnich kilku lat, a drugie zawierają dowiązania symboliczne do folderów w folderze Data, które zostały zaktualizowane od 1 stycznia 2011. Linki zostały utworzone za pomocą standardu Komenda ln -s.dowiązania symboliczne działają po udostępnieniu systemu Windows lub Linux (smb), ale są przerywane po udostępnieniu na komputerze Mac (afp lub smb).

Po zamontowaniu udostępnionego folderu Dokumenty na komputerze z systemem Windows łącza działają. Kiedy montuję na Linuksie za pomocą smb, łącza działają. Kiedy używam tych linków bezpośrednio na hostującym Macu, działają. Jednak po zamontowaniu folderu Dokumenty ze zdalnego komputera Mac miękkie łącza są przerywane. Aby było jasne, montuję folder Dokumenty, przechodząc do Findera> Połącz z serwerem> afp: //xxx.xxx.xx.xx/ lub smb: //xxx.xxx.xx.xx/Documents

Wszelkie pomysły jak uzyskać dostęp do tych miękkich linków podczas udostępniania na zdalnym komputerze Mac?

-Sibo

Odpowiedz

4

Mac OS udostępnianie plików naraża dowiązania symboliczne jak rzeczywiste łączy symbolicznych.

Jeśli podłączę jednego Macintosha do drugiego, używając AFP lub SMB, mogę to potwierdzić.

Należy zauważyć, że dowiązania symboliczne są rozwiązywane przez klienta - nawet w przypadku braku udostępniania plików oznacza to, że względne ścieżki w dowiązaniach symbolicznych mogą być trudne, aw tym przypadku związane z udostępnianiem plików sieciowych, oznacza to, że komputer kliencki potrzebuje aby móc zobaczyć plik docelowy (plik docelowy musi również znajdować się w folderze, który jest współużytkowany i zamontowany), a ścieżka musi być taka sama.

Na przykład, jeśli utworzę plik tekstowy o nazwie "foo" w moim katalogu domowym, a następnie wykonaj "dowiązanie symboliczne ln -s foo", aby utworzyć odsyłacz do niego o nazwie dowiązanie symboliczne, a następnie podłącz ten katalog domowy z drugiego komputera i zrób "ls -l" jest pokazane jako "symlink @ -> foo", a jeśli wyszukuję plik, mogę go przeczytać. Ale jeśli utworzę dowiązanie symboliczne jako "ln -s/Users/matt/foo symlink", to na drugim komputerze ls -l pokazuje go jako "symlink @ ->/Users/matt/foo", a cat mówi "cat: dowiązanie symboliczne: brak takiego pliku lub katalogu ". Dzieje się tak dlatego, że na drugim komputerze/Users/matt jest lokalnym katalogiem domowym, który nie zawiera pliku o nazwie foo (a jeśli tak, to cokolwiek rozwiązując dowiązanie symboliczne zobaczy lokalny plik foo, a nie foo udostępniony z pierwszego komputera) .

W zasadzie: możesz użyć "ls -l", aby zobaczyć, gdzie wskazuje dowiązanie symboliczne, i zwróć uwagę, że komputer kliencki rozwiąże dowiązanie symboliczne i spróbuje otworzyć dowolny plik o tej nazwie, co może, ale nie musi być tym, co Ty spodziewany.

(Prawdopodobnie powodem, dla którego twój test działał na twoim komputerze z Linuksem, a nie na twoim Macu, jest to, że maszyna Linux ma więcej udziałów sieciowych podłączonych lub o różnych nazwach, tak że nazwa docelowa dowiązania symbolicznego była poprawną nazwą pliku na komputerze z Linuksem, ale nie Mac.)

+0

Rozumiem i zgadzam się z uzasadnieniem, dlaczego moje dowiązania symboliczne zawodzą. Jednym z możliwych rozwiązań może być restrukturyzacja struktury folderów, tak aby Data_2011 była folderem zawierającym zarówno dowiązania symboliczne, jak i podfolder danych. To naprawdę nie jest idealne. Czy istnieje sposób, aby te łącza działały bez scalania katalogów? Próbowałem użyć relatywne łącze, takie jak "ln -s ../Data/datafolder symboliczne", ale nie otrzymuję inny wynik. –

+0

Aktualizacja: nevermind - tworzenie dowiązania symbolicznego z relatywną lokalizacją DZIAŁA, więc zaznaczę to pytanie. Odpowiedziano. W rzeczywistości komendę ln polecam w poleceniu find ("find -exec ln -s}, więc trzeba trochę więcej, aby wszystko działało w mojej sytuacji. Dzięki za pomoc! –

+0

Wielkie dzięki. pomaga mi w konfiguracji biblioteki mediów Sonos na MacOS High Sierra – ursa