Windowsのさまざまなリンクタイプは何ですか?それらを作成するにはどうすればよいですか?


54

Windowsで異なる拡張子を使用せずに2つのファイルまたはフォルダーをリンクすることは可能ですか?

Unixのソフトリンクとハードリンクに相当する機能を探しています。


これは、関連あるsuperuser.com/questions/343074/...
barlop

素晴らしい記事はこちらcects.com/…w7以前のjuctionsに注意
barlop

回答:


57

残念な違いは、シンボリックリンクを作成するために管理者権限必要なことですIE、昇格したプロンプトが必要です。(回避策は、を介して通常のユーザーにSeCreateSymbolicLinkPrivilegeを付与できることsecpol.mscです。)

用語の注意:Windowsショートカットは「シンボリックリンク」と呼ばれません。これらは、Windowsエクスプローラシェルが特別に処理する単なるファイルであるため、シェルリンクです。


シンボリックリンク:NTFSファイルシステムでそれらを作成するにはどうすればよいですか?

Windows Vista以降のバージョンは、NTFSファイルシステムでUnixスタイルのシンボリックリンクをサポートしています。 また、それらは同じパス解決に従うことに注意してください。相対リンクは、現在のディレクトリではなく、リンクの場所を基準にして作成されます。人々はしばしばそれを忘れます。また、絶対パスを使用して実装することもできます。EG c:\ windows \ system32ではなく、\ system32(リンクの場所に接続されているsystem32ディレクトリに移動します)。シンボリックリンクは再解析ポイント
使用して実装され、通常はUnixシンボリックリンクと同じ動作をします。

ファイルについては、次を実行できます。

mklink  linkname  targetpath

ディレクトリについては、次を実行できます。

mklink / d linkname  targetpath

ハードリンク:NTFSファイルシステムでハードリンクを作成するにはどうすればよいですか?

Windows NTのすべてのバージョンは、NTFSファイルシステムでUnixスタイルのハードリンクをサポートしています。Vista以降でmklinkを使用する:

mklink / h linkname  targetpath

Windows 2000およびXPの場合は、を使用しますfsutil

fsutil hardlink create linkname  targetpath

これらはUnixハードリンクと同じように機能します。複数のファイルテーブルエントリが同じiノードを指します。


ディレクトリジャンクション:NTFSファイルシステムでそれらを作成するにはどうすればよいですか?

Windows 2000以降は、NTFSファイルシステムでのディレクトリジャンクションをサポートしています。常に絶対的なものであり、ファイルではなくディレクトリのみを指すという点で、シンボリックリンクとは異なります。

mklink / j linkname  targetpath

を持たないバージョンでは、Sysinternalsからmklinkダウンロードしますjunction

ジャンクション リンク名 TARGETPATH

ジャンクションは、再解析ポイントを使用して実装されます。


Windowsで再解析ポイントを使用してボリュームをマウントするにはどうすればよいですか?

完全を期すために、Windows 2000以降では、再解析ポイントはボリュームを指すこともあり、永続的なUnixスタイルのディスクマウントになります

mountvol  マウントポイント \\?\ Volume { volumeguid }

ボリュームGUIDは、mountvol; によってリストされます。それらは静的ですが、同じマシン内でのみです。


Windowsエクスプローラーでこれを行う方法はありますか?

はい、シェル拡張Link Shell Extensionを使用できます。これにより、上記のリンクを非常に簡単に作成できます。ダウンロードはページの下部にあります

NT4、Windows 2000、Windows XP、Windows XP64、およびWindows7に実装されているNTFSファイルシステムは、ハードリンク(ここではHardlinksと呼びます)と呼ばれる機能をサポートしています。ハードリンクは、ファイルの単一のコピーを保持しながら、複数のフォルダー(ディレクトリ)に表示する機能を提供します。彼らは、POSIXのコマンドで作成することができLN含ま Windowsリソースキット、FSUTILのWindows XPまたは私のコマンドラインに含まれるコマンドユーティリティln.exeユーティリティ。

拡張機能により、ユーザーは1つまたは複数のファイルまたはフォルダーを選択し、マウスを使用して、必要なリンク(ハードリンク、ジャンクション、またはシンボリックリンク)の作成を完了するか、フォルダーの場合はハードリンクまたはシンボリックリンクで構成されるクローンを作成できます。LSEは、Windows XP64やWindows7など、NTFSバージョン5.0以降をサポートするすべてのWindowsバージョンでサポートされています。ハードリンク、ジャンクション、およびシンボリックリンクはFATファイルシステムではサポートされていません。また、FATファイルシステムではクローニングおよびスマートコピープロセスもサポートされていません。

ソースは、右クリックメニューを使用して簡単に選択できます。

そして、あなたが選んだものに応じて、宛先フォルダを右クリックし、オプションのメニューを取得します。

これにより、リンクを簡単に作成できます。詳細なガイドについては、LSEのドキュメントをご覧ください

ダウンロードは、ページの下部にあります

関連するMSDN URL:


40

この回答では、ディレクトリ管理のさまざまなタイプのリンクが何であるかなぜそれらが役立つのいつ使用できるのを概説します。ファイルボリュームで特定の組織を達成しようとする場合、さまざまな種類を理解し、作成することは貴重な知識です。

特定のリンクを作成する方法については、grawity回答を参照してください。

リンクとは何ですか?

リンクは、2つのエンティティ間の関係です。ディレクトリ管理のコンテキストでは、リンクは次の2つのエンティティ間の関係として見ることができます。

  1. ディレクトリテーブル

    このテーブルは、特定のフォルダーにあるファイルとフォルダーを追跡します。

    ディレクトリテーブルは、ディレクトリ(フォルダとも呼ばれる)を表す特別な種類のファイルです。内部に格納されている各ファイルまたはディレクトリは、テーブル内の32バイトのエントリで表されます。各エントリには、名前、拡張子、属性(アーカイブ、ディレクトリ、非表示、読み取り専用、システムおよびボリューム)、最終変更日時、ファイル/ディレクトリデータの最初のクラスタのアドレス、最後にファイル/ディレクトリ。

  2. データクラスター

    より具体的には、ファイルまたはディレクトリの最初のクラスター。

    クラスターは、ファイルを保持するために割り当てることができるディスク領域の最小論理量です。

この関係の特別な点は、データクラスターを1つだけ持つことができるが、そのデータクラスターへの多くのリンクがあることです。これにより、複数の場所に存在するデータを表示できます。ただし、これを行う方法は複数あり、それぞれの方法には独自の効果があります。

このルーツの由来を確認するには、過去に戻りましょう...

シェルリンクとは何ですか。なぜ十分でないのですか?

馴染みがないように聞こえるかもしれませんが、私たちは皆これを知っています!ファイルのショートカットは、間違いなくファイルをリンクする最も頻繁に使用される方法です。これらは、Windows 9xの初期バージョンのいくつかで発見され、長い間存在していました。

これらを使用すると、任意のファイルまたはフォルダーへのショートカットをすばやく作成できます。たとえば、ファイルが実行される作業ディレクトリ、プログラムに提供する引数、オプションなどのリンクだけに追加の情報保存するように作られています。プログラムを最大化するかどうかなど。

このリンクのアプローチのマイナス面は、正確に言うと、追加の情報では、このタイプのリンクがそのファイルを格納するためのデータクラスターを独自に持つ必要があるということです。その場合、問題は必ずしもディスクスペースを消費することではなく、実際のリンクに到達する前にデータクラスターを最初に要求する必要があるため、リンクに間接的にアクセスすることです。実際のリンクで参照されているパスがなくなっても、シェルリンクは存在します。

参照されているファイルを操作する場合、実際にはファイルがどのディレクトリにあるかを最初に把握する必要があります。リンク先の.lnkファイルではなくファイルを編集するため、エディターで単純にリンクを開くことはできません。これにより、シェルリンクの多くの使用例がロックアウトされます。

ジャンクションポイントリンクはこれらの問題をどのように解決しようとしますか?

NTFS接合点は 1を作成することができますシンボリックリンクをディレクトリにローカルドライブ上のそれだけで通常のディレクトリのように振る舞うように、。そのため、ディスク上にファイルのディレクトリが1つありますが、複数の場所からアクセスできます。

ジャンクションポイントを削除すると、元のディレクトリが残ります。元のディレクトリを削除すると、ジャンクションポイントが残ります。削除する必要があるジャンクションポイントを確認するためにディスクを列挙するのは非常にコストがかかります。これは、実装の結果としての欠点です。

NTFSジャンクションポイントは、Windows 2000で導入されたNTFSファイルシステムオブジェクトであるNTFS再解析ポイントを使用して実装されます。

NTFS再解析ポイントは、NTFSファイルシステムオブジェクトの一種です。再解析ポイントは、ディレクトリエントリに追加情報を追加することでNTFSファイルシステムを拡張する方法を提供するため、ファイルシステムフィルターはオペレーティングシステムがデータを処理する方法を解釈できます。これにより、ジャンクションポイント、NTFSシンボリックリンク、およびボリュームマウントポイントを作成できます。これは、Windows 2000の階層ストレージシステムの重要な機能です。

そうです、再解析ポイントの発明により、より洗練されたリンク方法を行うことができます。

NTFSジャンクションポイントはソフトリンクです。つまり、ファイルの名前にリンクするだけです。これは、リンクが削除されるたびに元のデータがそのまま残ることを意味します。ただし、元のデータが削除されると、元のデータは失われます。

ファイルをソフトリンクすることもできますか?シンボリックリンクはありますか?

はい、Windows Vistaが登場したとき、NTFSジャンクションポイントと同じように機能するソフトリンクであるNTFSシンボリックリンクを提供することにより、NTFSファイルシステムオブジェクトの機能を拡張することにしました。ただし、ファイルとディレクトリに適用できます。

再び同じ削除動作を共有します。いくつかのユースケースでは、ファイルの無駄なコピーを持ちたくないので、これはファイルの痛みになる可能性があります。これが、ハードリンクの概念も実装された理由です。

ハードリンクとは何ですか?ソフトリンクとは対照的にどのように動作しますか?

ハードリンクはNTFSファイルシステムオブジェクトではありませんが、代わりにファイルへのリンクです(詳細には、実際のファイルに関する追加情報を格納するMFTエントリを参照します)。MFTエントリには、ファイルがハードリンクされている時間を記憶するフィールドがあります。データを指すリンクが少なくとも1つ存在する限り、データにアクセスできます。

そのため、データは存在する単一のMFTエントリに依存しなくなりました。ハードリンクが存在する限り、データは存続します。これにより、元のファイルの場所を記憶したくない場合に誤って削除することを防ぎます。

たとえば、「私はまだ見なければならない映画」というフォルダー、「休暇中に撮った映画」フォルダー、「お気に入りの映画」フォルダーを作成できます。これらのいずれでもない映画は適切に削除されますが、これらのいずれかの映画は、映画を視聴した場合でも存在し続けます。

ボリュームマウントポイントリンクとは何ですか?

一部のITまたはビジネスの人々は、システムにある異なるドライブ文字を覚えたり入力したりすることを嫌うかもしれません。M:とにかく本当に何を意味するのでしょうか?音楽でしたか?映画?モデル?地図?

マイクロソフトは、ユーザーをからに移行しようと努力してきましwork in drive C:work in your user folder。UACとアクセス許可の問題を抱えているユーザーは、これらのガイドラインに従わないユーザーであると間違いなく言うことができますが、それが不思議ではありません。

個人ファイル以外を毎日表示する必要があるのはなぜですか?

ボリュームマウントポイントは、ドライブ文字に制限されず、それらに意味のあるディレクトリ構造を持っているプロフェッショナルなITの方法ですが、...

ファイルはさまざまな場所にありますが、リンクを使用してそれらをまとめることはできますか?

Windows 7では、まさにこの目的のためにライブラリが導入されました。このフォルダー、およびそのフォルダーとそのフォルダーにある音楽ファイルを使用します。下位レベルのビューから、ライブラリは複数のリンクとして表示できます。これらも、複数の参照を含むことができるファイルシステムオブジェクトとして実装されます。それは本質的に1対多の関係です...

私の脳が爆発します...それらをいつ使用するか要約できますか?

  • ショートカットリンク:実行可能ファイルまたはWebサイトへの迅速なアクセスが必要な場合、頻繁に起動するファイル、またはアプリケーションとバッチファイルにパラメーターを指定する必要がある場合に使用します。ショートカットを使用してファイルを操作する場合は使用しないでください。

  • ジャンクションポイント:ディレクトリを別の場所に配置する場合に使用します。これにより、元のパスにアクセスする機能を失うことなく、ディレクトリを高速または低速のドライブに移動できます。別の用途は、別のパスを介してディレクトリにアクセスする場合です。これらを共有へのリンクに使用することはできません。

  • ソフトリンク:ショートカットリンクでは不十分な場合に使用します。ショートカットを使用してファイルを操作する場合によく使用されます。または、元のパスにアクセスする機能を失うことなく、ファイルをより高速または低速のドライブに配置する場合。

  • ハードリンク:ファイルへのハードリンクがすべて削除された場合にのみファイルを削除する場合に使用します。これはフォルダーには使用できません。

  • ボリュームマウントポイント:ドライブ文字を使い果たした場合、またはドライブ文字ではなくパスを使用してボリュームにアクセスする方が実行可能な場合に使用します。

  • ライブラリ:多くの異なる場所に同じタイプのファイルがあり、それらを一緒にする必要がある場合に使用します。これにより、リムーバブルドライブがサポートされるため、挿入時にリムーバブルドライブ上のフォルダーがコンピューター上のフォルダーの間に表示されるようになりますそれ。ツリービューのライブラリの下にあるフォルダツリーから個々のフォルダをクリックすると、両方の間でファイルを移動しやすくなります。


ライブラリはショートカットリンクのようなシェルレベルですよね?
メディノック14

@Medinoc:いいえ、複数の場所のコンテンツを集約します。
タマラWijsman 14

1
しかし、彼らは、たとえばcmd.exeのようにファイルシステムレベルでそれを行いdir、集約されたコンテンツをリストすることができます(その場合、ファイルシステムのどこにあるのか、見つけることができません)、または集約するだけですシェルレベルで、Windowsエクスプローラーとファイルダイアログのみがそれらを表示できますか?私はそれは後者だった印象の下にあったが、私は私の質問に間違って(私が言うことを意味書いていない限り、あなたの「いいえ」は、この挑戦「ショートカットのリンクは次のようにライブラリは、シェルレベルのあるある右、?」)。
メディノック14

@Medinoc:はのファイルですC:\Users\{User}\AppData\Roaming\Microsoft\Windows\Libraries
タマラWijsman 14年

1
@Pacerier:Windowsは古いロケーションシステムを使用します。このロケーションシステムでは、たとえばプロパティから音楽フォルダーを移動できます。ライブラリは新たに追加されたもので、結果としてOS自体はほとんど使用しません。したがって、何かが壊れるかどうかは疑問です。彼らは、表示目的のためだけに意図されているように、...
タマラWijsman

8

Windows Vista以降を使用していて、管理者権限を持っている場合は、mklinkコマンド(コマンドラインツール)を確認できます。Windowsがショートカットに付ける小さな矢印アイコンを提供するため、実際にsymlink-yがどのようになっているのかわかりませんが、テキストファイルで簡単なnotepad ++テストを行うと、探しているものに対して機能する可能性があります。

クイック使用ガイドの引数なしでmklinkを実行できます。

それがお役に立てば幸いです。


mklinkは、NTFSジャンクションポイント(私はそれがそう呼ばれていると思います)を使用して、Unixスタイルのリンクをほぼ完全に複製します。ただし、Windowsはジャンクションであることを認識できるため、従来の矢印アイコンが表示されます。iircレジストリをいじることでこれを削除できますが、どこにあるか覚えていません。
jcrawfordor

2
@jcrawfordor:ディスク構造は「再解析ポイント」です。ジャンクションとシンボリックリンクは、2種類の再解析ポイントです。ボリュームマウントポイントは3番目です。
悲しみ

1
はい、@ Gemini mklink製のシンボリックリンクは、Unixのシンボリックリンクと同様に機能するように特別に実装されています
悲しみ

確認をありがとう。私は彼らとあまり遊んだことがないので、disclaim.hを含めたかっただけです;)
ジェミニドミノ

2

この記事にはいくつかの違いがあります

1つの重要な違いは、ある意味で、win7より前のジャンクションは少し安全ではないことです。ジャンクションを削除すると、ターゲットディレクトリが削除されます。

http://cects.com/overview-to-understanding-hard-links-junction-points-and-symbolic-links-in-windows/

ジャンクションポイントは、エクスプローラ、delまたはdel / sコマンド、またはディレクトリを再帰的にたどるユーティリティを使用して、Win2k、Win2003、およびWinXPで削除しないでください。これらはターゲットディレクトリとそのすべてのサブディレクトリを削除します。代わりに、rmdirコマンド、linkdユーティリティ、またはfsutil(WinXP以上を使用している場合)またはサードパーティツールを使用して、ターゲットに影響を与えずにジャンクションポイントを削除します。Vista / Win7では、エクスプローラーまたはrmdirおよびdelコマンドを使用してジャンクションポイントを削除しても安全です。

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