WindowsはLinuxのシンボリックリンクを認識しますか?


14

Windowsシステムがシンボリックリンクをどのように処理するのか疑問に思っていました。私の最良の推測は、それがそれらを認識しないということですが、私には完全にはわかりません。

また、Macは1つに直面したときに何をしますか?


1
Windowsをシンボリックリンクに公開する予定はありますか?それらをサポートするファイルシステムを理解していません(ほとんどがUIから隠されているシンボリックリンクとまったく異なるものを持たないNTFSを除く)。
ジル 'SO-悪であるのをやめる'

ああ.. Windowsパーティションをマウントし、そこにシンボリックリンクを配置しようとするとどうなりますか?まるでフォルダのように機能しますか?(もしそうなら、私は再帰で何が起こるのだろう...)
JamesTheAwesomeDude

これで私を助けてください:stackoverflow.com/questions/21403772/…-
グーフィー

回答:


10

非ローカルディスクについて話すときは、Windowsのバージョンとサーバー側の構成に依存します。

Windows Vista以降、Windowsにはシンボリックリンクの概念がありますが、セマンティクスは異なります。しかし、ここでのより重要な問題は、異なる構文に従うパス名でなければなりません。手始めに:unixoid側のシングルルートディレクトリツリーと、Windows側のルートとしての複数のドライブ文字。

unixoid側では、シンボリックリンクは特別なフラグが付いた単なるテキストファイルです。Windows側では、基盤となるメカニズムは再解析ポイントと呼ばれます。これは、特定の登録済みフィルターに渡すようにオブジェクトマネージャーに指示します(このメタデータは再解析ポイントに保存さます)。Windows 2000は、ジャンクションポイント(おおむね完全ではありませんが、ディレクトリシンボリックリンク)と呼ばれる1種類の再解析ポイントを既に導入しています。Vistaでは、ファイルとディレクトリの両方、およびリモートドライブにもシンボリックリンクを導入しました。またリモートドライブ上のシンボリックリンクもある程度サポートされています。

主なポイントは、ファイルシステムドライバーが(ローカルで実行されたときに)Windowsが取得するパスを調整するかどうかです。そのような場合、特定のローカル/相対シンボリックリンクで機能します。絶対パスをターゲットにすると、意味が推測しにくくなります。(「ネットワーク共有」への)リモートsymlinksリンクについても同じです。

Mac側に関しては、私にはわからないので、別の質問として意味をなすかもしれません。しかし、サーバー側がこれがシンボリックリンクであるという情報を伝えている限り、両方ともSUSセマンティクスに従うので問題はありません(Windowsとは異なります)。


Linuxのサイドマウントポイントを検討します。

/dev/sda1 /
/dev/sda2 /home
/dev/sda3 /var

そして、を/home/paul/fstab指すシンボリックリンクを考えてみましょう/etc/fstab。それらは2つの異なるボリューム上にあり、Windowsはファイルシステムドライバー(動作します!)を介してそれらを見ることができる場合、/etc/fstabそれを説明する方法で一緒に属するとは判断できません。そのため、Windowsがフォルダの下に表示するリンクは\paul\fstab、たとえ翻訳されていても、を指しますが\etc\fstab、これはには存在しません/dev/sda2。そして、そのシンボリックリンクが相対パスを指す場合、../../etc/fstab物事はまったく変化しません。


要点:いくつかのコーナーケースでこれを動作させることができると考えられますが、フェンスの両側でセマンティクスと構文が異なるという事実は、動作する実用的で一般的な方法を見つける可能性が低いことです。


2
うわー、これは非常に詳細で徹底的な答えでした!これらすべての情報を提供していただきありがとうございます!Linuxのシンボリックリンクがテキストベースであるということは実際には知りませんでした。ここですべての有用な情報をありがとうございます。
JamesTheAwesomeDude

:あなたは、この上のヘルプ私を喜ばせることができstackoverflow.com/questions/21403772/...
グーフィー

XPでシンボリックリンクを作成したと思いますが、vistaが最初だったと確信していますか?
ctrl-alt-delor

ntfsマウントポイントをサポートします(これらすべての文字が気に入らない場合)。
ctrl-alt-delor

@richard:実際、ボリュームマウントポイント、Win32サブシステムでドライブ文字として表示されるものの技術用語です。ただし、ボリュームマウントポイントを既存のフォルダー(ジャンクションポイントと非常によく似ています)に設定することもできます。ボリュームマウントポイント、ジャンクションポイント、およびシンボリックリンクの実装に使用される技術的な機能は、再解析ポイントと呼ばれます。はい、Vistaはシンボリックリンクをサポートした最初の企業です。XPでは、別のサブシステム(POSIXなど)でしか実行できませんでしたが、上記のような異なるセマンティクスを持っています。
0xC0000022L

2

0xC0000022Lの答えは、物事のWindows側にとって徹底的です。MacはLinuxのシンボリックリンクを認識できます。ただし、Linux はMacのFinderで作成されたエイリアスを認識できません(ln -sを使用して作成されたシンボリックリンクは正常に機能します)。


エイリアスのような音は、Windows上のショートカット(.lnkファイル)に対応するOSX です。
0xC0000022L
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.