Lassen Sie die CD symbolischen Links folgen

76

Ich habe meinen Code als sshfs in mein Home-Verzeichnis eingebunden, aber die Hierarchie ist schwer zu merken. Deshalb habe ich in meinem Home-Verzeichnis einen Symlink erstellt, der zu diesem Verzeichnis führt. Gibt es eine Möglichkeit, dass ich, wenn ich zu diesem symbolischen Link gehe, anstatt zu dem symbolischen Link zu gehen, tatsächlich zu diesem Verzeichnis gehe?

Wenn die Frage unklar war, hier ein Beispiel für das, wonach ich suche:

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/$
Rowantran
quelle
3
zwei verwandte Fragen
jw013

Antworten:

105

Bei jeder POSIX-Implementierung von cdkönnen Sie diese -POption verwenden.

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

Sie können es hier in Aktion sehen:

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

Wenn dies das Standardverhalten sein soll, können Sie entweder einen Alias ​​für cdwie folgt erstellen :

alias cd='cd -P'

... oder benutzen set -o physical. Für tcsh lautet der entsprechende Befehl set symlinks=chase.

Chris Down
quelle
Und wenn Sie keine Posix-Implementierung haben ...?
Scott Biggs