Он служит главным образом для того, чтобы убедиться, что сундук с инструментами POSIX доступен как внутри, так и снаружи оболочки (см. Обоснование POSIX ).
Потому cd
что это не очень полезно, но обратите внимание, что cd
изменяет каталоги, но имеет другие побочные эффекты: он возвращает состояние выхода, которое помогает определить, можете ли вы войти chdir()
в этот каталог или нет, и выводит полезное сообщение об ошибке, объясняющее, почему вы не можете chdir()
когда ты не можешь.
Пример:
dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} \; -print)
Другим потенциальным побочным эффектом является автомонтирование каталога.
В некоторых системах большинство внешних команд для стандартных встроенных оболочек реализовано в виде символической ссылки на тот же сценарий, который выполняет:
#! /bin/sh -
"${0##*/}" "$@"
То есть запустить оболочку и запустить встроенную в нее.
Некоторые другие системы (например, GNU) имеют утилиты как настоящие исполняемые команды, которые могут привести к путанице, когда поведение отличается от встроенной версии оболочки.
/usr/bin/cd
только встроенной оболочки.