リンケージ全体を印刷する追加オプションを使用してシンボリックリンクを解決したいと思います。たとえば、リンケージの各エントリを報告するreadlink -f "symlink2"
のようなコマンドを実行したいと思います。言い換えると、シンボリックリンク「symlink2-> symlink1->/path/file」を解決する場合、上記のコマンドの結果は「/ path/file」になり、次のような出力を探しています。
$readlink -f "symlink2
symlink1
/path/file
これを行う1つの方法は、独自の再帰的なreadlink
を作成することです。
function readlinkWithPrint() {
link=`readlink "$@"`
[ -e "$link" ] && echo "$link"
[ -h "$link" ] && readlinkWithPrint "$link"
}
これがテストです:
$ touch file
$ ln -s file symlink1
$ ln -s symlink1 symlink2
$ readlinkWithPrint symlink2
symlink1
file
残念ながら、この機能は非常に基本的なものです。 frist readlink
に提供するオプションは残りに伝播せず、さらに複数のファイルを読み取ることはできません。