web-dev-qa-db-fra.com

Faire suivre les liens symboliques du cd

J'ai mon code monté en tant que sshfs dans mon répertoire personnel, mais la hiérarchie est difficile à retenir, j'ai donc créé un lien symbolique dans mon répertoire personnel menant à ce répertoire. Existe-t-il un moyen pour que lorsque je cd vers ce lien symbolique, au lieu de cding vers le lien symbolique, il soit réellement cd vers ce répertoire?

Si la question n'était pas claire, voici un exemple de ce que je recherche:

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

Avec toute implémentation POSIX de cd, vous pouvez utiliser le -P option pour ce faire.

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

Vous pouvez le voir en action ici:

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

Si vous voulez que ce soit le comportement par défaut, vous pouvez soit créer un alias pour cd, comme ceci:

alias cd='cd -P'

...Ou utiliser set -o physical. Pour tcsh, la commande équivalente est set symlinks=chase.

114
Chris Down