リンク全体を印刷する追加のオプションでシンボリックリンクを解決したいと思います。たとえば、readlink -f "symlink2"
リンクの各項目を報告するコマンドを実行したいと思います。つまり、「symlink2->symlink1->/path/file」シンボリックリンクを確認したい場合、上記のコマンドの結果は「/path/file」です。次のような出力を得たいと思います。
$readlink -f "symlink2
symlink1
/path/file
答え1
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
残念ながら、この機能は非常に基本的です。最初に提供するオプションは、残りのreadlink
オプションに伝播されず、複数のファイルを読み取ることはできません。