cdしてpwdする
echo $(cd $(dirname '/usr/bin/perl'); pwd) # /usr/bin cd /usr/bin echo $(cd $(dirname 'perl'); pwd) # /usr/bin echo $(cd $(dirname '../bin/perl'); pwd) # /usr/bin
もちろんcdに失敗したらカレントディレクトリの情報返しちゃうので、
test -d $(dirname $HOGE)とかやってチェックするとかして誤魔化す。
this.sh /usr/bin/perl ../../../../../usr/bin/perl
とかやっても、$1と$2は同じ位置だよーって教えるぐらいの使い道。