Як створити символічне посилання в Windows?


113

Windows Vista додала можливість створювати символічні посилання на файли та каталоги. Як створити символічне посилання та які поточні споживчі та серверні версії Windows підтримують його?


6
Чи може хтось виділити відмінності між символічним посиланням та ярликом?
tomjedrz

1
@tomjedrz: якщо ви використовуєте ярлик, будь-які API для відкриття цього ярлика відкриють текстовий файл, який містить шлях до цільового файлу / папки. якщо ви використовуєте посилання, будь-які API для відкриття цього посилання відкриють цільовий файл / папку.
Афріза Н. Коротка

2
Всупереч сказаному всіма людьми, я підтверджую, що в Windows XP можна використовувати символічні посилання . (Я використовую його для встановлення бази даних Picasa у спільній папці VM). Просто подивіться на schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html та перейдіть до розділу "Символічні посилання для Windows XP". HTH
Адам Ріцковський

Відповіді:


109

Ви можете створити символічне посилання за допомогою утиліти командного рядка 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.

Символічні посилання через mklink доступні з Windows Vista та Windows Server 2008. У Windows XP та Windows Server 2003 можна використовувати

fsutil hardlink create <destination filename> <source filename>

Згідно з повідомленням msdn.microsoft , символічні посилання НЕ підтримуються у FAT16 / 32 та exFAT. Здається, Windows підтримує їх лише з NTFS-розділів. Майбутні операційні системи Windows, ймовірно, продовжать підтримувати mklink.

Ви можете прочитати додаткову інформацію про цю нову функцію в Microsoft TechNet , блозі Junfeng Zhang або на howtogeek.com .


Було б добре додати URL-адресу Девіда в технікумі для повноти.
Майкл Прайор

Примітка сайту, що таке з'єднання (/ J варіант)?
Рой Ріко

З'єднання каталогів - тип символьного посилання каталогу. support.microsoft.com/?kbid=205524
Лара Дуган

1
NTFS підтримує посилання (з різними іменами) з Windows 2000, але вони використовувалися лише внутрішньо, особливо в розділі домену SYSVOL; деякі комунальні послуги були доступні для управління ними, але не були вбудовані; Vista представила інструмент MKLINK та широке використання посилань на установках Windows за замовчуванням.
Массімо

2
Було б добре згадати fsutilз відповіді @ sascha нижче, щоб запропонувати рішення для Windows Server 2003.
Phrogz

30

У Windows XP ви можете використовувати fsutil(вбудований в ОС) для створення жорсткого посилання

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

Майте на увазі, що fsutil працюватиме лише в тому випадку, якщо обидва знаходяться на одному приводі


2
Хороша відповідь. Я перебуваю на WinXP / Win2003 і мені потрібно було mklink, але це вирішило мою проблему для мене. Зазвичай я використовую junction.exe від sysinternals, але це лише обробка каталогів, і в цьому випадку мені знадобилося посилання на файл
s3v1

Шкода, що символічне посилання не може бути створене fsutil, принаймні з того, що я читав деінде. Це міцне посилання і, отже, не є відповіддю на питання.
Власек

10

Одна невелика річ, якщо ви використовуєте Powershell, mklink не працює безпосередньо, запустіть його так:

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

1
Це має бути / c, не / k, інакше cmd.exe не вийде.
dangph

7

Використовуйте mklink або з'єднання від Sysinternals (Microsoft). Я вважаю, що mklink буде працювати в Windows 2000 і вище, але я не можу знайти жодної жорсткої документації на це. перехід призначений для Windows 2000 і вище.


1
Команда mklink - це лише Vista та Server 2008 і вище, як я вказував вище.

4

Цього не бачив у жодній із відповідей, але linkd.exe (у наборі ресурсів для Windows 2003 тут ) дозволяє створювати стики, які в значній мірі функціонують як м'яке / жорстке посилання в Linux. Розв’язки доступні в Windows 2000 і новіших версіях, тому просто скопіюйте linkd.exe в цільову систему, і вона повинна працювати.


1
Зауважте, що `/ linkd` призначений лише для каталогів, а не для файлів.
Фрогз

3

Якщо ви все ще знаходитесь у старих Windows, таких як XP, 2000, 2003 тощо, спробуйте NTFS Link .

Я цим багато користуюся. Ви отримуєте опцію меню правої кнопки миші, щоб створити точку з'єднання. Відмінні речі.


Для мене це добре працювало в Windows 2003 для створення символічного посилання на папку на іншому диску. Дякую!
Філ

Коментар від анонімного користувача, спочатку відредагований у відповідь: "Примітка. Щоб XP працював, він повинен використовувати розділ NTFS, а не FAT або FAT32. Див. Aumha.org/win5/a/ntfscvt.php для кроків щодо того, як це зробити конвертувати в NTFS. "
шквал

2

Див. Запис TechNet . Я вважаю, що це функція Vista / Server 2008 і новіших версій.


Класно, ніколи не знали про цю функцію раніше, дякую за посилання, може бути дуже корисним !!!
Марк-Андре Р.

1

Щоб переконатися, що ваші посилання працюють, ви можете перевірити конфігурацію вашого сервера. Посилання можуть бути зроблені, але якщо ви не використовуєте параметр символьної оцінки в наступній команді, ваші посилання можуть не працювати.

fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1

Дивіться також http://technet.microsoft.com/en-us/library/cc754077%28v=ws.10%29.aspx . За замовчуванням активуються лише локальні параметри.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.