É o shell que está fornecendo a ilusão de que um link simbólico apontando para um diretório é um diretório real enraizado no local do symlink. cd
é por necessidade um shell embutido, e tab-completion também é uma função executada pelo shell. Como cd
é executado pelo shell, ele sabe sobre o symlink e pode manter a ilusão. A maioria dos comandos Unix não são implementados pelo shell e, portanto, não há como saber que você percorreu um symlink para alcançar o diretório atual. Como esses comandos ( ls
, mv
, rm
, etc.) não podem saber sobre o symlink, eles não podem manter a ilusão.