Встроенная оболочка pwd использует путь, который оболочка отслеживает, когда вы cd(и сохраняет его $PWD). Это означает, что если у вас есть символическая ссылка на сложный (глубокий) путь, он скажет вам, что вы ввели, чтобы изменить этот каталог вместо реального пути. Это сделано, чтобы дать вам то, что вы хотите большую часть времени.
/bin/pwdиспользует getcwdсистемный вызов (который в наши дни является библиотечным вызовом, чтение /proc/self/cwd), который возвращает канонический путь к текущему каталогу, без всех обходов символической ссылки.
Как указал Стивен Д., pwdимеет -Pвозможность игнорировать $PWD. Он также имеет -Lвозможность вернуть содержимое $PWD. Страница pwdруководства для не говорит, какая опция используется по умолчанию, но опыт подсказывает, что приведенное выше описание является правильным (оболочка pwdпротив /bin/pwd). Однако вы, вероятно, не должны полагаться на это и просто использовать pwd -P.
man pwdв командной строке, чтобы узнать параметры этой команды.