Sim, o seu shell tenta ser inteligente ao mudar para um diretório de links simbólicos:
$ mkdir a
$ ln -s a b
$ cd b
$ pwd
/home/michas/b
$ pwd -P
/home/michas/a
Depois de mudar para o symlink b
, o seu shell finge que você está realmente no "diretório" b
, mas em vez disso o link simbólico lhe enviou para o diretório a
.
Veja help pwd
:
-P print the physical directory, without any symbolic links
Os comandos externos (como ls
) sempre usarão o caminho físico, mas os padrões internos do shell usarão o caminho virtual do symlink.
O comando cd
é um shell embutido e usará como padrão interpretar cd ..
como "deixar o symlink atual", em vez de "usar o pai físico". Mas você pode mudar esse comportamento. help cd
diz:
-P use the physical directory structure without following symbolic
links: resolve symbolic links in DIR before processing instances