ぶていのログでぶログ

思い出したが吉日

readlinkコマンドが意外にすごい件について

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