Faça o cd seguir links simbólicos

71

Eu tenho meu código montado como um sshfs no meu diretório home, mas a hierarquia é difícil de lembrar, então criei um link simbólico em meu diretório inicial que leva a esse diretório. Existe uma maneira para que quando eu cd para esse link simbólico, em vez de cding para o link simbólico, ele realmente cd para esse diretório?

Se a pergunta não estiver clara, aqui está um exemplo do que estou procurando:

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/$
    
por bladezzz 14.11.2012 / 17:22

1 resposta

95

Com qualquer implementação POSIX de cd , você pode usar a opção -P para fazer isso.

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

Você pode ver isso em ação aqui:

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

Se você quiser que este seja o comportamento padrão, você pode criar um alias para cd , assim:

alias cd='cd -P'

... ou use set -o physical . Para tcsh, o comando equivalente é set symlinks=chase .

    
por 14.11.2012 / 17:24