W kontekście NTFS:
MKLINK [[/D] | [/H] | [/J]] Link Target
/D
Tworzy dowiązanie symboliczne do katalogu. Domyślnie jest dowiązaniem symbolicznym pliku.
/H
Tworzy dowiązanie twarde zamiast dowiązania symbolicznego.
/J
Tworzy połączenie katalogu.
Link
określa nową nazwę dowiązania symbolicznego.
Target
określa ścieżkę (względną lub bezwzględną), do której odnosi się nowy link.
Czy połączenie katalogu nie jest dokładnie tym samym, co symboliczne łącze do katalogu ?
Jaka jest różnica między
mklink /D f1 f2
imklink /J f1 f2
?Ponieważ „katalog” jest w rzeczywistości tylko plikiem , jaka byłaby różnica między dowiązaniem symbolicznym katalogu a dowiązaniem symbolicznym pliku?
windows
filesystems
ntfs
symbolic-link
Pacerier
źródło
źródło
Odpowiedzi:
Połączenie to zdecydowanie nie to samo, co dowiązanie symboliczne katalogu, chociaż zachowują się podobnie. Główna różnica polega na tym, że jeśli patrzysz na zdalny serwer, połączenia są przetwarzane na serwerze, a dowiązania symboliczne katalogu są przetwarzane na kliencie . Zobacz także komentarz Matthew na temat tego, że oznacza to, że dowiązania symboliczne w lokalnym systemie plików mogą wskazywać na zdalne systemy plików.
Załóżmy, że na komputerze o nazwie Alice należy umieścić punkt połączenia
c:\myjp
i symboliczne łącze do kataloguc:\mysymlink
, oba wskazującec:\targetfolder
. Podczas korzystania z Alicji nie zauważysz dużej różnicy między nimi. Ale jeśli używasz innej maszyny o nazwie Bob, to punkt połączenia\\Alice\c$\myjp
wskaże na\\Alice\c$\targetfolder
ale symboliczny link
\\Alice\c$\mysymlink
wskaże na\\Bob\c$\targetfolder
(Zastrzeżenie: domyślnie system nie śledzić dowiązania na tomach odległych, więc w większości przypadków drugi przykład rzeczywiście spowodować albo „Nie można odnaleźć pliku” lub „Symboliczny link może nie nastąpić, ponieważ jego typ jest wyłączone” )
Różnica między dowiązaniem symbolicznym katalogu a dowiązaniem symbolicznym pliku polega na tym, że jeden reprezentuje katalog, a drugi plik. Ponieważ cel łącza nie musi istnieć podczas tworzenia łącza, system plików musi wiedzieć, czy powiedzieć aplikacjom, że jest to katalog, czy nie.
Należy również zauważyć, że utworzenie dowiązania symbolicznego wymaga specjalnych uprawnień (domyślnie dostępne tylko dla procesów z podwyższonym poziomem uprawnień), natomiast utworzenie połączenia wymaga jedynie dostępu do systemu plików.
źródło
C:\testlink
(które wskazujeC:\test
na mój komputer) i ktoś zdalnieC:\testlink
uzyska dostęp do mojego komputera i kliknie , rozwiąże to problemC:\test
na komputerze HIS, natomiast jeśli utworzę złącze kataloguC:\testlink
(co wskazuje naC:\test
na moim komputerze), a ktoś zdalnego dostępu do mojego komputera i kliknieC:\testlink
) prowadziłoby to do niegoC:\test
na moim komputerze? A może źle to zrozumiałem?C:\MyNetworkShare
które również wskazuje\\Alice\Share
?Złożona rozmowa boli mózg - lubię wykresy:
Załóżmy, że dowolny
MyLink
jest dowiązaniem symbolicznym, a dowolnyMyJunc
oznacza skrzyżowanie wskazująceTarget as created
.na przykład
mklink /D MyLink C:\T_Dir
do tworzenia dowiązania symbolicznego do katalogu docelowegomklink /J MyJunc C:\T_Dir
do utworzenia połączenia katalogu z katalogiem docelowymGdzie składnia jest taka,
mklink [/J,/D] [link path] [target path]
jak na maszynie lokalnejBłąd * 1 - Jeśli odblokowałeś dostęp do zdalnych dowiązań symbolicznych na komputerze lokalnym, to zadziałałoby .. ale tylko na komputerze lokalnym, na którym został odblokowany
źródło
d:\_tmp\data
. Utwórz link tak:d:\_tmp>mklink /d data-link data
. Zdalny użytkownik ma pełny dostęp dod:\_tmp
wszystkich podfolderów, ALE wciąż nie będzie mógł otworzyćd:\_tmp\data-link
.Complex talk hurts brain -- I like charts
Uwielbiam to zdanie i tabelę.Dowiązania symboliczne mają większą funkcjonalność, podczas gdy połączenia wydają się być raczej starszą funkcją ze względu na ich ograniczenia, ale implikacje bezpieczeństwa dla tych ograniczeń są szczególnie ważne, dlaczego połączenie może być preferowane zamiast łącza symbolicznego. Zdalne kierowanie sprawia, że dowiązania symboliczne są bardziej funkcjonalne, ale także podnosi ich profil bezpieczeństwa, a skrzyżowania można uznać za bezpieczniejsze, ponieważ są ograniczone do lokalnych ścieżek . Tak więc, jeśli chcesz mieć link lokalny i możesz żyć z absolutną ścieżką, prawdopodobnie lepiej jest z skrzyżowaniem; w przeciwnym razie weź pod uwagę symboliczne łącze dla jego dodatkowych umiejętności.
** Stwierdzenie różnicy prędkości / złożoności pochodzi z niezweryfikowanego stwierdzenia we wpisie w Wikipedii na temat punktów ponownej analizy NTFS (dobry odczyt). *
Inne porównania linków NTFS
Oto kilka innych porównań na ten temat, ale mogą one wprowadzać w błąd przy rozważaniu skrzyżowań, ponieważ nie wymieniają korzyści wymienionych powyżej.
Zaczerpnięte stąd (dobra lektura wprowadzająca)
Ze strony SS64 na MKLink
Komentarze na temat terminologii
Połączenia są dowiązaniami symbolicznymi
Połączenia i dowiązania symboliczne naprawdę robią to samo w ten sam sposób (punkty ponownej analizy), oprócz wyżej wymienionych różnic w ich przetwarzaniu. W rzeczywistości technicznie Junction jest dowiązaniem symbolicznym, a czasami dokumentacja może nazywać Junction dowiązaniem symbolicznym, jak ma to miejsce w tym przypadku . Jest to coś, o czym należy pamiętać w odniesieniu do terminologii.
NTFS
Mimo że PO to określa, warto zauważyć, że „dowiązanie symboliczne” jest bardzo ogólnym terminem, który nie jest specyficzny dla NTFS. Mówiąc ściślej, to porównanie dotyczy połączeń NTFS vs. dowiązań symbolicznych NTFS.
źródło