web-dev-qa-db-ja.com

mklinkコマンドを使用してWindowsでハードリンクを作成する方法

Mklinkを介してジャンクションとシンボリックリンクを作成することに問題はありませんが、このコマンドを使用してハードリンクを作成することはできません。 「アクセスが拒否されました」を返し、異なるマシンのWindows 7と8.1の両方で試しましたが、cmdは管理者権限で開始されました。

D:\>mklink /d /h dirA dirB

もちろんdirB存在します。このコマンドをエラーなしで実行するためにすべきことはありますか?

3
Jarek

フォルダーへのハードリンクは作成できず、ファイルのみを作成できると思います。シンボリックリンク/Dとジャンクション/Jはフォルダに対しても機能します。

また、ハードリンクを作成するときは、2つの異なるドライブ間でリンクを作成できないことに注意してください(同じ物理ハードドライブ上でも)。

別のSUからの簡単な説明 回答

ハードリンクは、ファイルシステムの境界を越えることができないファイルシステム機能です。 C:からD:のファイルは別個のファイルシステムであるため、ハードリンクすることはできません。それぞれに同じタイプのファイルシステム(NTFSなど)が含まれている場合がありますが、それらは別々のファイルシステムです。

5
Shazvi

デビッドがブレーデンに返信してコメントしたように、ジャンクションは技術的には「ハードフォルダリンク」ではないかもしれませんが、「/J/Dよりも難しい」と言えると思います。

適切な例は、mklink /D "..\link_dir" "existing_dir"の場合、「link_dir」にcdすることができないということです。ただし、代わりに/Jを使用すれば、cdを使用できます。

1
user2426679

フォルダ/ディレクトリへのハードリンクを作成することはできません。それはジャンクションと呼ばれます。 mklink/J

https://msdn.Microsoft.com/en-us/library/windows/desktop/aa365006(v = vs.85).aspxhttp://www.sevenforums.com /tutorials/278262-mklink-create-use-links-windows.html

また、mklink/Dは、ハードリンクではなく、ディレクトリシンボリックリンクを作成します。実際には、シンボリックリンクはファイルやフォルダへの「ファンシーショートカット」ですが、ハードリンクはファイルのみの「ファイル同期」のようなもので、「ショートカット」はターゲットファイルの「ツイン」です。 1つに変更を加え、両方に変更を加えますが、実際にはドライブ上に物理的に1つのファイルしかないため、ターゲットファイルのサイズが500MBの場合、500MBのみが使用されます。ジャンクションはフォルダのハードリンクであり、ハードリンクと同じように機能します。

0
Braden Dodge