/Users/lukasé um caminho "absoluto". O líder /representa o diretório raiz do seu sistema de arquivos.
lukasé um caminho "relativo". Como não está ancorado na raiz, significa "procure por isso no diretório atual ". A menos que o diretório atual seja /Users(ou algum outro diretório com um lukas), isso falhará.
Então, vamos explorar seus exemplos, supondo que você esteja /Users/lukas:
$ cd Documents/
/Users/lukas/Documents
Caminho relativo fornecido => mude para o diretório "Documents" que está dentro /Users/lukas.
$ cd /Documents
-bash: cd: /Documents: No such file or directory
Caminho absoluto dado => mude para o diretório /Documents.
$ pwd
/
Isso mostra que você agora mudou o diretório de trabalho para o diretório raiz /(embora o cdcomando para fazer isso não tenha sido mostrado).
$ cd Users
/Users
Caminho relativo fornecido => mude para o diretório "Usuários" que está dentro /.
$ cd /Users
/Users
Caminho absoluto dado => mude para o diretório /Users.
A chave de cada vez é essa liderança /. Com isso, o caminho é absoluto. Sem ele, o caminho é relativo. Esta regra é inequívoca porque todos os caminhos absolutos começam com /(porque o diretório raiz é sempre chamado /).
Aqui estão alguns pseudocódigos que descrevem livremente esse algoritmo:
MakePathAbsolute(path):
if <path> starts with '/'
return <path>
else
return <current directory>/<path>
O argumento para o qual você passa cdpassa por esse algoritmo; o diretório para o qual você acaba alterando é o caminho que o algoritmo retorna.
Leitura adicional: