Em bash
, o cd
incorporado usa -P
e -L
switches; pwd
os entende da mesma maneira:
user@host:~$ ln -s /bin foobar
user@host:~$ cd -L foobar # follow link
user@host:~/foobar$ pwd -L # print $PWD
/home/user/foobar
user@host:~/foobar$ pwd -P # print physical directory
/bin
user@host:~/foobar$ cd - # return to previous directory
/home/user
user@host:~$ cd -P foobar # use physical directory structure
user@host:/bin$ pwd -L # print $PWD
/bin
user@host:/bin$ pwd -P # print physical directory
/bin
Além disso, cd ..
pode ser complicado:
user@host:/bin$ cd
user@host:~$ cd -L foobar
user@host:~/foobar$ cd -L .. # go up, to ~/
user@host:~$ cd -L foobar
user@host:~/foobar$ cd -P .. # go up, but not to ~/
user@host:/$
Veja help cd
e help pwd
. Note que você também pode ter um executável (isto é, não um shell integrado) como /bin/pwd
que deve se comportar de maneira semelhante. No meu Kubuntu, a diferença é que pwd
embutido sem nenhuma opção usa -L
, enquanto /bin/pwd
, por padrão, usa -P
.
Você pode ajustar o comportamento padrão de cd
incorporado por set -P
( cd
age como cd -P
) e set +P
( cd
age como cd -L
). Veja help set
para detalhes.