シンボリックリンクを作成するときはいつ絶対パス名を使用する必要がありますか?

シンボリックリンクを作成するときはいつ絶対パス名を使用する必要がありますか?

私はここといくつかの本でリンクやファイルを移動しても壊れないので、相対パスを使用してシンボリックリンクを作成することをお勧めします。常に相対パスシンボリックリンクを作成する必要があるかどうか疑問に思います。たとえば、/etc/passwd現在のディレクトリに接続するには絶対パスを使用する必要がありますか、相対パスを使用する必要がありますか?

ln -rs /etc/passwd passwd-symlink相対パスリンクが生成されますが、これは必要ですか?

ベストアンサー1

これに対する明確な答えはないかもしれません。

次のいずれかの状況が存在する場合は、相対記号リンクを使用することをお勧めします。このような状況では、リンクが有効に保たれるためです。

  • ターゲットが同じディレクトリツリーにあり、ディレクトリツリー全体を移動できる場合
  • ターゲットが同じファイルシステム上にあり、将来のマウントから別の場所にマウントされている場合(回復ライブ環境、コンテナ、または他のシステムである可能性があります)

ただし、次のいずれかの条件が満たされると、絶対リンクがより良い可能性があります。

  • ../ターゲットが正しいシーケンス数を確認できないまったく異なるディレクトリにあります。
  • 現在のディレクトリとは別に、非常に特定のファイルを指したいです(例:/ etcの設定ファイルかもしれません)。
  • これが指すファイルが何であるかを非常に明確にしたい場合は、実際のリンクがシンボリックリンクを指すか、ディレクトリシンボリックリンクの宛先を巡回する迷路のシンボリックリンクに置き換えることができます。

おすすめ記事