現在のディレクトリを指すのではなく、リンクが常に絶対パスを指すようにしてください。絶対パスを指すリンク
私はソフトウェアを維持する必要があり、以前のバージョンは常に最新のバージョンを指している必要があります。
現在のディレクトリを指すのではなく、リンクが常に絶対パスを指すようにしてください。絶対パスを指すリンク
私はソフトウェアを維持する必要があり、以前のバージョンは常に最新のバージョンを指している必要があります。
「良い方法」を定義します。リンクが絶対パスを指しているかどうかは、ファイル間の関係によって決まります。
ファイルは常に同じ相対位置にありますが、移動することができます(たとえば、別名:bin/
)。相対的な位置にする必要があります。実際のファイルが既知の場所にある場合(デフォルトの設定ファイルを~/.config
にリンクする場合など)、絶対パスを使用します。
あなたが何をしたいかによって異なります。私のLinuxシステムには、両方の種類のシンボリックリンクがあります。
find /usr /bin /lib -type l -print0 | xargs -0 ls -ld | less
私はそこに「良い習慣」はないと思います。さまざまなユースケースがあります。
例えば、プログラムがローカルに/home/.../applicationにインストールされているツリーを保存する場合、絶対パスなしで特定のコンフィグレーションに "default config"をシンボリックリンクすることができます。そうすれば、ツリー全体を/home/.../application-other-instanceに移動すると、configファイルへのリンクが正しいままになります。
一方、ローカルディレクトリで/ etc/...のグローバルファイルを参照したい場合は、絶対パスのシンボリックリンクを使用して行います。それは私がどこにいても同じファイルを指していることを保証します。
あなたが達成したいと思うのは、相対的/絶対的なパスの決定が明白であるか無関係かだけです。 「決してそれをしないでください」というルールは、恐らく:絶対にルートディレクトリ/ xxxの何かにリンクすることはできません。../../../../../../../xxx
私は、私は一般化としてそれに同意できると思う。
確かに、相対的なリンクが理にかなっているケースがあります。たとえば、プロジェクトのディレクトリツリーを使用します。プロジェクトがバックアップされたり、別の場所に移動(重複さえさえ)された場合、絶対的なリンクは混乱したり悲惨なものになります。
システム全体のツールについて話していても、相対リンクが意味を成し、他の時がそうでない場合があります。 grepのような非常に汎用的なツールへのリンクと、同じホスト上にあるGNUコンパイラツールの複数のバージョンやターゲットの味のようなものとの比較。後者の場合、特定のツールバージョンへの絶対リンクがおそらく必要になります。
それぞれの場合に本当にやりたいことがすべて戻ってきます。一般的な答えは、一般化された答えがないということです。