web-dev-qa-db-ja.com

シンボリック/ソフトリンクは、デスクトップのショートカット/エイリアスに似ていますか?

ソフト/シンボリックリンクの基本的な考え方は、ショートカット(PCの場合)やエイリアス(Macの場合)と比較して同じであるように思えます。私は道を外れていますか?それらは似ていますか?

19
Marty

基本的な考え方はほぼ同じです。シンボリックリンクは、別のファイルシステムオブジェクトへのパス(相対パスまたは絶対パス)を含む特別なファイルです。 UNIX/Linuxでは、OS自体がシンボリックリンクを処理し、実際のオブジェクトに透過的に解決します。

Macでは、エイリアスは、ローカルオブジェクトだけでなくリモートオブジェクトも参照できる特別なFinder構成要素のようですが、FinderはOSではなく参照を解決します。 MacOS Xにもシンボリックリンクがありますが、エイリアスとは別のものです。

大きな違いは、Windowsショートカットとシンボリックリンクの違いです。 Windowsでは常にこれらの厄介なファイル拡張子が必要であり、 "lnk"ファイルはWindowsに関しては実行可能ファイルnotであるため、Windowsショートカットはプログラムを簡単に置き換えることができません。 GUI内では機能しますが、サーバーの観点からはbarfsします。ディレクトリと同じです。それらは便利ですが、シンボリックリンクのパワーと柔軟性に近いものはありません。

14
Arcege

あんまり。似ていますが、ある程度までです。 「ああ、シンボリックリンクはショートカットのようなものですが、よくわかりません」と彼らが「実際、シンボリックリンクはショートカットのようではなく、今では理解できる」と言ったときまで、私は人々に知っています。そのため、ショートカットはシンボリックリンクを理解するのに適した方法ではないと思います。ショートカットとの比較については、頭をクリアすることをお勧めします。

シンボリックリンクは、別のファイルの名前を示します。これは、フルパスと同様に「名前」です。つまり、ディレクトリの一部とディレクトリ内の名前が含まれる可能性があります。パスは絶対(/foo/bar)または相対(foo/barまたは../barまたは単にbar);ターゲットが相対パスで指定されている場合、シンボリックリンクを含むディレクトリを基準にして解釈されます。ターゲットファイルが存在する場合と存在しない場合があり、ターゲットファイルを削除、移動、または作成しても、シンボリックリンクには影響しません。

ファイルのコンテンツを操作する操作は、ターゲットファイルを操作します。したがって、シンボリックリンクを介してファイルの読み取りや書き込みを行ったり、シンボリックリンクを介してプログラムを実行したりすると、ターゲットファイルにアクセスしているかのようになります。名前の変更や削除など、外部からファイルに作用する操作は、シンボリックリンク自体に作用します。書き込みの場合、既存のファイルを上書きする(ターゲットで動作する)か、既存のファイルを削除して新しいファイルを作成する(ターゲットをそのままにして、シンボリックリンクを置き換える新しいファイルを作成する)かによって、違いが生じることに注意してください。アプリケーションはリンクをたどるように注意します(多くの場合))。