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/$

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.


Und wenn Sie keine Posix-Implementierung haben ...?
Scott Biggs
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.