どのようにしてbash
の特定のパスを取得し、それを正規の形式に変換して、パス内に含まれている可能性のあるシンボリックリンクを逆参照できますか?
例えば:
~$ mkdir /tmp/symtest
~$ cd /tmp/symtest/
/tmp/symtest$ mkdir -p foo/bar cat/dog
/tmp/symtest$ cd foo/bar/
/tmp/symtest/foo/bar$ ln -s ../../cat cat
/tmp/symtest/foo/bat$ cd ../../
/tmp/symtest$ tree
.
|-- cat
| `-- dog
`-- foo
`-- bar
`-- cat -> ../../cat
6 directories, 0 files
/tmp/symtest/foo/bar/cat
の完全な正規パスを取得するにはどうすればよいですか(つまり、/tmp/symtest/cat
)?
Andy Skelton のおかげで、答えはreadlink -f
:
$:/tmp/symtest$ readlink -f /tmp/symtest/foo/bar/cat
/tmp/symtest/cat