/Users/lukas - это "абсолютный" путь. Ведущий / представляет корневой каталог вашей файловой системы.
lukas - это "относительный" путь. Поскольку он не привязан к корню, это означает «искать это в текущем каталоге». Если текущим каталогом не является /Users (или какой-либо другой каталог с lukas в нем), это не удастся.
Итак, давайте рассмотрим ваши примеры, предполагая, что вы находитесь в /Users/lukas:
$ cd Documents/
/Users/lukas/Documents
Относительный путь указан => перейти в каталог "Documents", который находится внутри /Users/lukas .
$ cd /Documents
-bash: cd: /Documents: No such file or directory
Указан абсолютный путь => перейти в каталог /Documents .
$ pwd
/
Это показывает, что вы теперь изменили рабочий каталог на корневой каталог, / (хотя команда cd для этого не была показана).
$ cd Users
/Users
Относительный путь указан => перейти в каталог "Пользователи", который находится внутри / .
$ cd /Users
/Users
Указан абсолютный путь => перейти в каталог /Users .
Ключ каждый раз, что ведущий / . С ним путь абсолютен. Без этого путь относительный. Это правило однозначно, потому что все абсолютные пути начинаются с / (потому что корневой каталог всегда называется /).
Вот некоторый псевдокод, свободно описывающий этот алгоритм:
MakePathAbsolute(path):
if <path> starts with '/'
return <path>
else
return <current directory>/<path>
Аргумент, который вы передаете cd проходит через этот алгоритм; каталог, в который вы в конечном итоге меняете, - это путь, который возвращает алгоритм.
Дальнейшее чтение: