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


76

ホームディレクトリにコードを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/$

回答:


105

のPOSIX実装ではcd-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です。


Posixの実装がない場合は...?
スコット・ビッグス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.