web-dev-qa-db-ja.com

cdにシンボリックリンクをたどる

ホームディレクトリにコードをsshfsとしてマウントしましたが、階層を覚えるのが難しいため、ホームディレクトリにシンボリックリンクを作成し、そのディレクトリに移動しました。シンボリックリンクにcdするのではなく、そのシンボリックリンクにcdするときに、実際にそのディレクトリにcdする方法はありますか?

質問が不明確な場合、私が探しているものの例を以下に示します。

foo@foo:~$ ls -l
lrwxrwxrwx  1 foo      foo              5 2012-11-14 08:20 foo -> bar/bar

foo@foo:~$ cd foo
foo@foo:~/bar/bar/$
80
rowantran

cdのPOSIX実装では、-Pこれを行うオプション。

$ help cd
...
    -P      use the physical directory structure without following symbolic links
...

あなたはここでそれを実際に見ることができます:

$ mkdir foo
$ ln -s foo bar
$ cd -P bar
$ pwd
/tmp/tmp.WkupF2Ucuh/foo

これをデフォルトの動作にしたい場合は、次のようにcdのエイリアスを作成できます。

alias cd='cd -P'

...またはset -o physical。 tcshの場合、同等のコマンドはset symlinks=chase

114
Chris Down