結論から言えばpwd -Pをサブシェルでcdしてから使う方法が一番良いっぽい.
# シンボリックリンクのパスを$fileとしたとき
originalpath=$(cd $(dirname $file); pwd -P)
pwd -Pでカレントディレクトリのオリジナルパスを表示してくれる.
単純に相対パスを絶対パスへ変換したいだけなら-Pを取ればよい.
他の方法としてはreadlinkコマンドを使用する方法がある
readlink ~/.vim
/Users/iaarchiver/Dropbox/Sync/dotfiles/.vim
しかしこれは引数がSymlink以外だと何にも返してくれない.Symlinkであっても辿れるのは対象のリンク先のみ.再帰的にオリジナルを探索してくれるわけではないので注意.
GNUでは再帰的にオリジナルを探してくれるreadlink -f, 他にもrealpathもあるらしい.