web-dev-qa-db-ja.com

Windowsでディレクトリハードリンクを作成する方法

(ハードウェアリンクではなく)ディレクトリハードリンクを作成しようとしました。

私はこれを試しました:mklink /d /h newfolder currentfolderしかし、それは私に伝えていますアクセスが拒否されました。管理者としてバッチを実行しているため、アクセスが拒否される方法がわかりません。

ディレクトリハードリンクを作成するにはどうすればよいですか?

==
Windows Vista Home Premium SP2

14
Pacerier

ハードリンクはファイルのみでディレクトリではないと思います。

16
kobaltz

Windowsのディレクトリへのハードリンクのようなものはありません。 Windowsでは、コマンドmklink /d link_name target_dirを使用してディレクトリへのシンボリックリンクを作成するか、またはジャンクションを作成します。 mklink /J link_name target_dir

ハードリンクとは異なり、ジャンクションは複数のボリュームにまたがることがあり、Microsoftから "ソフトリンク"と呼ばれることもあります こちら

ジャンクション(ソフトリンクとも呼ばれます)がハードリンクと異なる点は、ジャンクションが参照するストレージオブジェクトが別のディレクトリであり、ジャンクションが同じコンピュータ。

Microsoftの用語は実際には適切ではないため、ここでは注意が必要ですが、簡単に言うと、これらはWindowsでファイルとディレクトリへの参照を作成するためのオプションです。
(1)ショートカット:コンテンツが別のファイルの場所であるファイル。それは多かれ少なかれソフトリンクのように機能しますが、決定的な違いがあります:それはディレクトリエントリではなく、リンク情報はファイル内に保存されます。このため、多くのアプリケーションでは動作しません(少なくとも、Windowsエクスプローラー内では想定どおりに動作します...)。
(2)ハードリンク:mklink /hコマンドで作成されます。ファイルにのみ有効で、特定のボリューム内で機能します(つまり、Linuxと同様に、別のパーティションやネットワークドライブ内のファイルをハードリンクすることはできません)。
(3)ジャンクション:この獣は本当に奇妙です。これはディレクトリでのみ機能し、面白いことに、他のファイルシステムのディレクトリを指すことができます。
(4)シンボリックリンク:Linuxとよく似ており、ディレクトリやファイルでも機能します。 (しかし、管理者特権が必要になる傾向があるため、かなり不便になる場合があります。)前述のとおり、ディレクトリにはmklink /d link_name target_dirコマンド(ファイルにはmklink link_name target_file)コマンドを使用して作成します。この詳細については、 ここ を参照してください。