Windowsでシンボリックリンクを作成するにはどうすればよいですか?


113

Windows Vistaでは、ファイルとディレクトリへのシンボリックリンクを作成する機能が追加されました。シンボリックリンクを作成するにはどうすればよいですか。また、それをサポートするWindowsの現在のコンシューマおよびサーバーバージョンは何ですか


6
誰かがシンボリックリンクとショートカットの違いを強調できますか?
tomjedrz

1
@tomjedrz:ショートカットを使用している場合、そのショートカットを開くためのAPIは、ターゲットファイル/フォルダーへのパスを含むテキストファイルを開きます。リンクを使用している場合、そのリンクを開くためのAPIはターゲットファイル/フォルダーを開きます。
アフリザN.アリーフ

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以降で使用できます。WindowsXPおよびWindows Server 2003では、次を使用できます。

fsutil hardlink create <destination filename> <source filename>

msdn.microsoftによると、FAT16 / 32およびexFATではシンボリックリンクはサポートされていません。WindowsはNTFSパーティションとの間でのみサポートしているようです。将来のWindowsオペレーティングシステムは、mklinkのサポートを継続する可能性があります。

この新機能の詳細については、Microsoft TechNetJungfeng Zhangのブログ、またはhowtogeek.comをご覧ください


完全を期すために、DavidのTechnet URLをエントリに追加すると便利です。
マイケルプライアー

サイトノート、ジャンクション(/ Jオプション)とは何ですか?
ロイ・リコ

ディレクトリジャンクション。ディレクトリシンボリックリンクの一種。support.microsoft.com/?kbid=205524
ララDougan

1
NTFSは、Windows 2000以来(さまざまな名前の)リンクをサポートしていますが、それらは内部、特にSYSVOLドメイン共有でのみ使用されていました。一部のユーティリティはそれらを管理するために使用できましたが、組み込まれていませんでした。Vistaは、デフォルトのWindowsインストールでMKLINKツールとリンクの広範な使用を導入しました。
マッシモ

2
fsutilWindows Server 2003のソリューションを提供するために、以下の
@sascha

30

Windows XPではfsutil、(OSに組み込まれている)を使用してハードリンクを作成できます。

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

fsutilは、両方が同じドライブにある場合にのみ機能することに注意してください


2
いい答えだ。私はWinXP / Win2003を使用しており、mklinkが必要でしたが、これで問題が解決しました。通常、sysinternalsのjunction.exeを使用しますが、それはディレクトリのみを処理し、この場合はファイルリンクが必要でした
-s3v1

残念なことに、シンボリックリンクはfsutilによって作成できません。少なくとも他の場所で読んだものからです。これはハードリンクであるため、質問への回答ではありません。
Vlasec

10

Powershellを使用している場合、mklinkが直接機能しないため、次のように実行してください。

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

1
/ kではなく/ cでなければなりません。そうでない場合、cmd.exeは終了しません。
ダンフ

7

Sysinternals(Microsoft)のmklinkまたはjunctionを使用します。mklinkはWindows 2000以降で動作すると信じていますが、それに関するハードドキュメントは見つかりません。junctionはWindows 2000以上用です。


1
コマンドmklinkは、上記で指摘したように、VistaおよびServer 2008以降のみです。

4

これはどの回答にも見られませんでしたが、linkd.exe(こちらの Windows 2003リソースキットにあります)を使用すると、Linuxでソフト/ハードリンクとして機能するジャンクションを作成できます。ジャンクションはWindows 2000以降で使用できるため、linkd.exeをターゲットシステムにコピーするだけで機能します。


1
`/ linkd`はディレクトリ用であり、ファイル用ではないことに注意してください。
プログズ

3

XP、2000、2003などの古いWindowsを使用している場合は、NTFS Linkを試してください。

よく使います。シェルリンクを右クリックしてメニューオプションを取得し、ジャンクションポイントを作成します。素晴らしいもの。


これは、Windows 2003で別のドライブ上のフォルダーへのシンボリックリンクを作成するのに非常に役立ちました。ありがとう!
フィル

最初に回答に編集された匿名ユーザーからのコメント:「注:XPが機能するには、FATまたはFAT32ではなくNTFSパーティションを使用する必要があります。手順についてはaumha.org/win5/a/ntfscvt.phpを参照してください。NTFSに変換します。」
squillman

2

TechNetのエントリを参照してください。Vista / Server 2008以降の機能だと思います。


この機能についてこれまで知らなかったクールな、リンクのおかげで、とても便利になるかもしれません!!!
マークアンドレR.

1

リンクが機能することを確認するには、サーバーの構成を確認することをお勧めします。リンクを作成できますが、次のコマンドでsymlinkevaluation設定を使用しない限り、リンクが機能しない場合があります。

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も参照してください。デフォルトでは、ローカルオプションのみがアクティブになります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.