Digamos que eu faça login em um shell em um sistema unix e comece a digitar comandos. Eu inicialmente começo no diretório inicial do meu usuário ~
. Eu poderia de lá cd
para baixo para o diretório Documents
.
O comando para alterar o diretório de trabalho aqui é muito simples de entender intuitivamente: o nó pai possui uma lista de nós filhos que pode acessar e, presumivelmente, usa uma variante (otimizada) de uma pesquisa para localizar a existência de um nó filho com o nomeie o usuário digitado e o diretório de trabalho é então "alterado" para corresponder a isso - corrija-me se eu estiver errado aí. Pode até ser mais simples que o shell simplesmente "ingenuamente" tente acessar o diretório exatamente de acordo com os desejos do usuário e quando o sistema de arquivos retornar algum tipo de erro, o shell exibirá uma resposta correspondente.
O que me interessa, no entanto, é como o mesmo processo funciona quando navego para cima em um diretório, ou seja, para um pai ou pai de um pai.
Dada a minha localização desconhecida, presumivelmente "cega" Documents
, um dos possivelmente muitos diretórios em toda a árvore do sistema de arquivos com esse nome, como o Unix determina onde devo ser colocado a seguir? Ele faz uma referência pwd
e examina isso? Se sim, como pwd
rastreia o estado de navegação atual?