Jak utworzyć łącze symboliczne w systemie Windows?


113

Windows Vista dodał możliwość tworzenia dowiązań symbolicznych do plików i katalogów. Jak utworzyć dowiązanie symboliczne i jakie bieżące wersje systemu Windows dla klientów i serwerów go obsługują?


6
Czy ktoś może podkreślić różnice między dowiązaniem symbolicznym a skrótem?
tomjedrz

1
@tomjedrz: jeśli używasz skrótu, wszelkie interfejsy API do otwarcia tego skrótu otworzą plik tekstowy zawierający ścieżkę do docelowego pliku / folderu. jeśli używasz łączy, wszelkie interfejsy API do otwarcia tego łącza otworzą docelowy plik / folder.
Afriza N. Arief

2
Wbrew temu, co powiedzieli wszyscy, potwierdzam, że w systemie Windows XP można używać dowiązań symbolicznych . (Używam go do instalacji bazy danych Picasa w folderze współdzielonym VM). Wystarczy spojrzeć na schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html i przejść do sekcji „Dowiązania symboliczne dla systemu Windows XP”. HTH
Adam Ryczkowski

Odpowiedzi:


109

Możesz utworzyć dowiązanie symboliczne za pomocą narzędzia wiersza poleceń mklink.

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is a file
                symbolic link.
        /H      Creates a hard link instead of a symbolic link.
        /J      Creates a Directory Junction.
        Link    specifies the new symbolic link name.
        Target  specifies the path (relative or absolute) that the new link
                refers to.

Łącza symboliczne za pośrednictwem mklink są dostępne od Windows Vista i Windows Server 2008. W Windows XP i Windows Server 2003 można używać

fsutil hardlink create <destination filename> <source filename>

Według msdn.microsoft , łącza symboliczne NIE są obsługiwane w systemach FAT16 / 32 i exFAT. Wygląda na to, że system Windows obsługuje je tylko z partycji NTFS lub do nich. Przyszłe systemy operacyjne Windows prawdopodobnie będą nadal obsługiwać mklink.

Więcej informacji na temat tej nowej funkcji można znaleźć w witrynie Microsoft TechNet , blogu Junfeng Zhang lub howtogeek.com .


Byłoby miło dodać adres David Technet do wpisu w celu uzupełnienia.
Michael Pryor

notka strony, co to jest juntion (opcja / J)?
Roy Rico,

Łączenie katalogu typ dowiązania symbolicznego katalogu. support.microsoft.com/?kbid=205524
Lara Dougan

1
NTFS obsługuje łącza (o różnych nazwach) od Windows 2000, ale były one używane tylko wewnętrznie, zwłaszcza w udziałach domeny SYSVOL; niektóre narzędzia były dostępne do zarządzania nimi, ale nie były wbudowane; Vista wprowadziła narzędzie MKLINK i szerokie wykorzystanie linków w domyślnych instalacjach Windows.
Massimo,

2
Miło wspomnieć fsutilo odpowiedzi @ sascha poniżej, aby zapewnić rozwiązanie dla systemu Windows Server 2003.
Phrogz

30

W systemie Windows XP można użyć fsutil(wbudowanego w system operacyjny) do utworzenia twardego łącza

 fsutil hardlink create c:\foo.txt c:\bar.txt

Pamiętaj, że fsutil będzie działał tylko wtedy, gdy oba są na tym samym dysku


2
Dobra odpowiedź. Korzystam z WinXP / Win2003 i potrzebowałem mklink, ale to rozwiązało mój problem. Zwykle używam junction.exe z sysinternals, ale to obsługuje tylko katalogi iw tym przypadku potrzebowałem linku do pliku
s3v1

Szkoda, że ​​dowiązanie symboliczne nie może zostać utworzone przez fsutil, przynajmniej z tego, co przeczytałem gdzie indziej. To jest twardy link, a zatem nie jest odpowiedzią na pytanie.
Vlasec

10

Jedną małą rzeczą, jeśli używasz Powershell, mklink nie działa bezpośrednio, uruchom go w następujący sposób:

PS C:\d\eclipseInstalls> cmd /k mklink /D antRunner 3.4.2
symbolic link created for antRunner <<===>> 3.4.2

1
Powinno to być / c, a nie / k, w przeciwnym razie cmd.exe nie zostanie zamknięty.
dangph

7

Użyj mklink lub skrzyżowania z Sysinternals (Microsoft). Wierzę , że mklink będzie działał w systemie Windows 2000 i nowszych, ale nie mogę znaleźć twardej dokumentacji na ten temat. połączenie dotyczy systemu Windows 2000 i nowszych wersji.


1
Polecenie mklink to Vista i Server 2008 i nowsze, jak wskazałem powyżej.

4

Nie widzi tego w żadnej odpowiedzi, ale linkd.exe (w zestawie Windows 2003 Zasobami tutaj ) pozwala na tworzenie węzłów, które dość dużo funkcji jako miękki / twardy linku robi w Linuksie. Połączenia są dostępne w systemie Windows 2000 i nowszych, więc po prostu skopiuj linkd.exe do systemu docelowego i powinien on działać.


1
Zauważ, że `/ linkd` dotyczy tylko katalogów, a nie plików.
Phrogz

3

Jeśli nadal używasz starego systemu Windows, takiego jak XP, 2000, 2003 itp., Wypróbuj łącze NTFS .

Często go używam. Otrzymasz link do powłoki klikając opcję menu prawym przyciskiem myszy, aby utworzyć punkt połączenia. Doskonałe rzeczy.


Działa to doskonale dla mnie w systemie Windows 2003 do tworzenia symbolicznego łącza do folderu na innym dysku. Dzięki!
Phil

Komentarz od anonimowego użytkownika, pierwotnie stworzony w odpowiedzi: „Uwaga: W przypadku XP do pracy, to musi być za pomocą partycji NTFS, FAT lub FAT32 nie See. Aumha.org/win5/a/ntfscvt.php dla kroków, w jaki sposób przekonwertować na NTFS. ”
squillman

2

Zobacz wpis TechNet . Uważam, że jest to funkcja Vista / Server 2008 i nowsze.


Fajne, nigdy wcześniej nie wiadomo o tej funkcji, dzięki za link, może być bardzo przydatne !!!
Marc-Andre R.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.