readlinkが意外にすごかった。
名前からしてシンボリックリンクの実体へのパスを取得するだけのコマンドだと思っていたのだが、実はそれだけではなかった!
1.ファイルのフルパスを取得する
-f
オプションを指定することでファイルのフルパスを取得できる。
$ touch hoge $ readlink -f hoge /home/buty/work/hoge
シンボリックリンクファイルに対して実行すると、実体へのフルパスを取得できる。
$ ln -s hoge test $ readlink -f test /home/buty/work/hoge
2. シンボリックリンクの実体確認ができる
test -h
では正しくチェックができないが、readlink -e
なら正しくチェックができる!
$ ls hige hage ls: cannot access hige: No such file or directory ls: cannot access hage: No such file or directory $ ln -s hige hage $ ln -s hage test $ readlink -e test $ echo $? 1 $ test -h test $ echo $? 0
ちなみに、実体が存在しない場合でも、-f
はフルパスを取得できる。
$ readlink -f test /home/buty/work/hige