結論から言えば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もあるらしい.