web-dev-qa-db-ja.com

Windowsにはさまざまなリンクタイプがありますか?どうすれば作成できますか?

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

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

53
Cookie

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

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


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

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

filesの場合、次のコマンドを実行できます。

mklink  リンク名targetpath

directoriesの場合、次のコマンドを実行できます。

mklink /d リンク名targetpath

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

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

mklink /h リンク名targetpath

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

fsutil hardlink 作成 リンク名targetpath

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


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

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

mklink /j リンク名targetpath

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

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

ジャンクションは reparse points を使用して実装されます。


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

完全を期すため、Windows 2000以降では、再解析ポイントがvolumesをポイントすることもできるため、永続的なUnixスタイルディスクマウント

mountvol  マウントポイント \\?\ボリューム{volumeguid} 

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


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

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

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

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

ソースは、右クリックメニューを使用してpickedすることができます。

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

これにより、リンクを作成するのが非常に簡単になります。詳細なガイドについては、 LSEドキュメント を参照してください。

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

関連するMSDN URL:

57
user1686

この回答では、whatディレクトリ管理のさまざまなタイプのリンクの概要とwhyそれらが次のように役立つので、 whenと同様に使用できます。ファイルボリュームで特定の組織を実現しようとする場合、さまざまな種類を理解し、それらを作成することは貴重な知識です。

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

リンクとは?

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

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

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

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

  2. データクラスタ

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

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

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

このルーツがどこから来たかを確認するために、過去に戻ってみましょう...

Shellリンクとは何ですか?なぜ十分ではないのですか?

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

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

このリンクのアプローチの欠点は、まさにそれです。追加の情報には、このタイプのリンクが、そのファイルを含めるためのデータクラスターを独自に持つ必要があります。その場合、問題は必ずしもディスク領域を使用することではなく、実際にリンクに到達する前にデータクラスタを最初に要求する必要があるため、リンクに間接的にアクセスされることです。 。実際のリンクで参照されているパスがなくなっても、シェルリンクは存在し続けます。

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

接続点リンクはこれらの問題をどのように解決しようとしますか?

NTFSジャンクションポイント を使用すると、ディレクトリへの シンボリックリンク を作成できますローカルドライブ上で、通常のディレクトリと同じように動作します。したがって、ディスクに保存されているファイルのディレクトリが1つありますが、複数の場所からアクセスできます。

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

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

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

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

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

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

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

これらも同じ削除動作を共有します。ファイルの無用なコピーをぶらぶらさせたくないので、一部の使用例では、これはファイルにとって苦痛になる可能性があります。これが、ハードリンクの概念も実装された理由です。

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

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

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

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

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

一部のITまたはビジネスの人々は、システムが持っているさまざまなドライブ文字を覚えたり入力したりすることを嫌うかもしれません。とにかくM:はどういう意味ですか?音楽でしたか?映画?モデル?マップ?

Microsoftは、ユーザーをwork in drive C:からwork in your user folderに移行するために、年間を通じて努力を重ねてきました。間違いなく、UACとアクセス許可の問題を抱えているユーザーは、これらのガイドラインに従っていないユーザーですが、不思議に思っているわけではありません。

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

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

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

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

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

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

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

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

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

  • ボリュームマウントポイント:ドライブ文字が足りなくなった場合、またはドライブではなくパスを介してボリュームにアクセスする方が適している場合に使用します。ドライブレター。

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

40
Tamara Wijsman

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

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

お役に立てば幸いです。

8
GeminiDomino

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

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

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

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

2
barlop