シンボリックリンク先のディレクトリで、実際のパス(physical path)を得る方法
目次
~/dir1/dir2/dir3 というディレクトリがあり、このディレクトリへのシンボリックリンク link が ~ 直下にある状態にあるとする。
※以下のコマンドを入れた状態
$ cd ~
$ mkdir -p dir1/dir2/dir3
$ ln -s dir1/dir2/dir3 link
カレントディレクトリの実際のパスを得る
普通に pwd しても、シンボリックリンクを通したパスが表示される。
$ cd ~/link
$ pwd
~/link
実際のパス(physical path)を得たい場合、-P オプションを付ければよい( pwd --help を参照)。
$ cd ~/link
$ pwd -P
~/dir1/dir2/dir3
実際のパスでディレクトリを移動する
この -P オプションは cd コマンドにもある( cd --help を参照)。そのため、cd -P . で実際のパスに移動することができる。
$ cd ~/link
$ pwd
~/link
$ cd -P ~/link
$ pwd
~/dir1/dir2/dir3
シンボリックリンク先で、実際のパスにおける親ディレクトリに移動する
シンボリックリンクのリンク先( ~/link )から cd .. としてもリンク元( ~ )に戻ってきてしまう。
$ cd ~/link/..
$ pwd
~
cd -P .. とすることで、リンク先の実際のパス( ~/dir1/dir2/dir3 )における親ディレクトリ( ~/dir1/dir2 )に移動することができる。
$ cd -P ~/link/..
$ pwd
~/dir1/dir2