web-dev-qa-db-ja.com

NTFSジャンクションポイントとシンボリックリンクの違いは何ですか?

高レベルでは、 NTFSジャンクションポイントシンボリックリンク の唯一の明らかな違いは、ジャンクションはディレクトリのみであり、SymLinksはファイルもターゲットにできることです。

2つの間に他にどのような違いがありますか?

(注、私はすでに この質問 を見ており、探しているものは少し異なります-その質問はプロとコンのリストを探しています、私は技術のセットを探しています違い)

121
Billy ONeal

シンボリックリンクにはより多くの機能がありますが、ジャンクションはその制限のためにほとんどレガシー機能と思われますが、これらの制限のセキュリティへの影響は、シンボリックリンクよりもジャンクションが優先される理由です。 リモートターゲティングにより、シンボリックリンクはより機能的になりますが、セキュリティプロファイルも向上しますが、ジャンクションはローカルパスに制約されるため安全です。したがって、ローカルリンクが必要で、絶対パスを使用できる場合は、ジャンクションを使用することをお勧めします。それ以外の場合は、追加機能のシンボリックリンクを検討してください。

enter image description here

**速度/複雑さの違いに関する声明は、 NTFS再解析ポイントに関するウィキペディアのエントリ (よく読まれている)の未確認の声明に由来しています。*


その他のNTFSリンク比較

トピックに関する他の比較をいくつか示しますが、これらは上記のメリットをリストしていないため、ジャンクションを検討するときに誤解を招く可能性があります。

ここから取得 (良い入門書)

enter image description here

MKLinkのSS64ページ

enter image description here


用語に関するコメント

ジャンクションは再解析ポイントです(シンボリックリンクとして説明される場合があります)

NTFSジャンクションとNTFSシンボリックリンクは、前述の処理方法の違いは別として、実際には同じ方法(リパースポイント)で同じことをしています。実際、技術的には、ジャンクションはWordのより一般的な意味での「シンボリックリンク」であり、ドキュメントではジャンクションをシンボリックリンクと呼ぶ場合があります この場合 。このような場合、「シンボリックリンク」は、ジャンクションとは異なるNTFSシンボリックリンクを意味しません(以下を参照)。

NTFS

OPはこれを指定していますが、「シンボリックリンク」はNTFSに固有ではない非常に一般的な用語であることを指摘する価値があります。したがって、具体的には、この比較はNTFSジャンクションとNTFSシンボリックリンクに関するものです。

65
u8it

私が違いに最も役立つと思う場所:

http://blogs.msdn.com/b/junfeng/archive/2006/04/15/576568.aspx

http://www.hanselman.com/blog/MoreOnVistaReparsePoints.aspx

仮定:SymlinkはUnixのHardlinkへのSymlinkはWindowsのJunctionへのリンクです。

http://en.wikipedia.org/wiki/Symbolic_link#Windows_7_.26_Vista_symbolic_link

Windows 7およびWindows Vistaは、コマンドラインユーティリティmklinkを使用して、ファイルとディレクトリの両方のシンボリックリンクをサポートしています。ジャンクションポイントとは異なり、シンボリックリンクはファイルまたはリモートサーバーメッセージブロック(SMB)ネットワークパスを指すこともできます。さらに、NTFSシンボリックリンクの実装は、ファイルシステム間のリンクを完全にサポートします。ただし、クロスホストシンボリックリンクを有効にする機能では、リモートシステムもそれらをサポートする必要があります。これにより、Windows Vista以降のWindowsオペレーティングシステムへのサポートが事実上制限されます。

http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/

Windowsによって作成されるシンボリックリンクは、ディレクトリジャンクションによく似ていますが、ディレクトリジャンクションとは異なり、ファイルまたはリモートネットワークファイルまたはディレクトリを指すことができます。ターゲットは、シンボリックリンクの位置に対する相対パス、または現在のボリュームまたは別のボリュームの絶対パスとして定義できます。また、ファイルへのシンボリックリンクはディレクトリへのシンボリックリンクとは異なり、ターゲットは定義と一致する必要があることに注意してください。

34
James Manning

機能的には、一度作成されたウィンドウでは、実際の違いはありません。ただし、それらの機能には大きな違いがあります。ジャンクションは、同じドライブまたは異なるドライブ上のフォルダーへのリンクの作成にのみ使用できますが、それらのドライブがローカルシステム上にある場合のみです(ネットワーク経由でフォルダーへのジャンクションリンクを作成することはできません)。ただし、同じ制限はありません。シンボリックリンクを使用してファイルまたはフォルダーにリンクし、それらのファイルまたはフォルダーを同じシステム(同じドライブまたは異なるドライブ)またはネットワーク共有に配置し、相対的な場所のシンボリック( "\\ system2\foldera\file.txt "、" d:\ foldera\file.txt "、" \\ system2\foldera "、" d:\ foldera "または" d:\ foldera\folderb .. "の結果のリンク最後の2つの例は同じ場所です。)相対場所の記号は、「。」、「..」、現在のドライブの相対機能(現在のドライブがc:の場合、「\ tempa\folderb」を指定するとc:\へのリンクになります) tempa\folderb、)および現在のディレクトリ相対(現在のディレクトリがd:\ foldera\folderbの場合、「d:file.txt」を指定すると、d:\ foldera\folderb\file.txtへのリンクになります。)

要約すると:ジャンクションポイントはローカルシステム上のフォルダーのみに制限されますが、シンボリックリンクは、UNCパスまたはローカルシステム上でアクセス可能なフォルダーまたはファイルへのリンクを作成できます。シンボリックリンクは、基本的に、ジャンクションポイントとハードリンクの両方をより汎用的に置き換えるものです。さらに、クロスプラットフォームUNCパスリンクを作成する場合、シンボリックリンクはUnixおよびLinuxと互換性があります。

うまくいけば、これがあなたの質問に満足のいく方法で答えるでしょう。誤植を修正するために編集されました。

18
Techno Wizard

Link Shell Extension http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html は、多くの種類のリンクを作成および表示するための優れたツールです。また、優れたドキュメントもあります。

[完全インストールでは、高度なリンクを見ている場合、新しいプロパティタブが追加されます。また、さまざまなリンクタイプのアイコンオーバーレイ矢印が追加されます。これらが表示されない場合は、FAQセクションまでスクロールします。 Windowsは13のオーバーレイのみをサポートします。彼はレジストリの回避策を示しています。情報の有用性の例:フォルダーだと思っていたものの、実際にはシステムが提供するジャンクションリンクであり、古いエディションのWindowsとの互換性のために使用されることが多いものへの特権の取得に失敗しました。

ジャンクションとシンボリックリンクは、ローカルシステム上のディレクトリに対して作成された場合、基本的に同じように機能します。

しかしながら:

これらはネットワーク上で異なる動作をします。このリンクはこの動作について説明しています: https://superuser.com/questions/343074/directory-junction-vs-directory-symbolic-link

Junction Linksを「場所に関してOSをだますショートカット」と考えるなら、それらの使用とそれらを壊すものの良い実用的な笑顔があります。主な違いは、シンボリックリンクまたはジャンクションをコピーする場合、(ショートカットのように)ポインタを含むファイルだけではなく、ターゲットをコピーすることです。ショートカットと同様に、ターゲットファイル/フォルダーを削除せずにシンボリックリンクまたはジャンクションリンクを削除できます。 [ハードリンク、ファイルは、ごみ箱からも含めて、最後のリンクが削除された場合にのみ削除されます。これらのリンクのLSEのプロパティタグを見て、ハードリンクのターゲットまたは参照カウントを確認してください。]

ハードリンクまたはショートカットは、ターゲット全体の破損やコピーなどの副作用なしに移動できる唯一のリンクタイプです。ターゲットを移動すると常にリンクが切断されますが、プロパティタブ(LSEで表示)で簡単に更新したり、LSEで複雑な場合は再作成したりできます。

シンボリックリンクの作成には管理者権限が必要ですが、ジャンクションには必要ありません。これに加えて、ジャンクションの広範な内部OS使用は、Windowsがそれらを直感的で期待される方法で処理することを示唆しています。 [システムフォルダからの予期しない副作用(Win 10での経験から)に多少注意してください。]

[Link Shell Extensionのバックアップ固有の機能のいくつかは非常に便利です。要するに、いくつかのタイプの更新可能なシンボリックリンク構造を、保留中のバックアップ目的のために標準フォルダに作成できます。]

10
Clay

シンボリックリンクはごく最近Windowsに導入されました。Vistaからです。

シンボリックリンクは、既存のNTFS "Reparse Point"テクノロジの代替と見なされるべきではありません。

Microsoftは、シンボリックリンクの唯一の目的はUnixとの互換性を高めることだと説明しています。

MSDN:「シンボリックリンクは、UNIXとの移行およびアプリケーションの互換性を支援するように設計されています。Microsoftは、シンボリックリンクを実装してUNIXリンクと同様に機能します。 "

Vistaは、独自の機能のためにリンクを使用する最初のOSでもあります。従来のフォルダ名との互換性を保つため、C:\Documents and SettingsC:\Usersへのリンクになりました。

興味深いことに、Vistaではシンボリックリンクが導入されていますが、この「Documents and Settings」トリックは実際には古いジャンクションです。

4
Philip

U8itからの優れた答えに加えて:

Windows 10のWindowsファイルエクスプローラーの動作の違いに興味がある場合:

ターゲットディレクトリにドラッグアンドドロップします。

  • symbolic linksymbolic linkをターゲットディレクトリに移動します
  • junctionoriginal directoryをターゲットディレクトリに移動します

マウスの右クリック+プロパティ:

  • symbolic link:ショートカットプロパティを表示します
  • junctionoriginal directoryフォルダープロパティを表示します

左ペイン(ディレクトリツリー)で左クリックします。

  • symbolic linkoriginal directoryを選択します
  • junctionjunctionを選択します
1
Jinjinov