Faire suivre les liens symboliques au cd


76

Mon code est monté en tant que sshfs dans mon répertoire personnel, mais la hiérarchie est difficile à mémoriser. J'ai donc créé un lien symbolique dans mon répertoire personnel menant à ce répertoire. Y at-il un moyen pour que lorsque je cd à ce lien symbolique, au lieu de cding au lien symbolique, il sera réellement cd dans 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/$

Réponses:


105

Avec n'importe quelle implémentation POSIX de cd, vous pouvez utiliser l' -Poption 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 créer un alias pour cd, comme suit:

alias cd='cd -P'

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


Et si vous n'avez pas d'implémentation Posix ...?
Scott Biggs
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.