
coreutilsのマニュアルで学んだ。ln
-r
--relative
リンク位置に基づいてシンボリックリンクを作成します。
例:
ln -srv /a/file /tmp ’/tmp/file’ -> ’../a/file’
相対シンボリックリンクは、正規包含ディレクトリと正規ターゲットに基づいて作成されます。つまり、これらのファイル名のすべてのシンボリックリンクが解決されます。次の例に示すように、相対ファイル名の生成に対するより大きな制御を提供する 161 ページの 18.5 項「実パスの呼び出し」を参照してください。
ln--relative() { test "$1" = --no-symlinks && { nosym=$1; shift; } target="$1"; test -d "$2" && link="$2/." || link="$2" rtarget="$(realpath $nosym -m "$target" \ --relative-to "$(dirname "$link")")" ln -s -v "$rtarget" "$link" }
ln--relative()
この例も同じ目的に使用されますかln -sr
?ありがとうございます。
答え1
いいえ、シェル機能は、ターゲットパスを持つ相対ln--remote
シンボリックリンクを生成する方法を提供します。〜しないだろう解決されたシンボリックリンク基本的に ln -r
する。
より多くの引数をとる関数を書く方法を示します。readpath
必ず必要な場合に備えてでも出力ファイル名を制御します。