Bash разрешает имя команды через функции, встроенные команды и поиск исполняемого файла по PATH с кешем путей. Обычный cp — внешняя программа.
Как `cp` находится и запускается Bash?
Bash разрешает имя команды через функции, встроенные команды и поиск исполняемого файла по PATH с кешем путей. Обычный cp — внешняя программа.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Bash разрешает имя команды через функции, встроенные команды и поиск исполняемого файла по PATH с кешем путей. Обычный cp — внешняя программа.
До выполнения также учитывается синтаксическое раскрытие alias, если оно включено. Для имени без / Bash проверяет функцию, builtin, затем сохранённый путь или каталоги PATH. Команда с явным путём запускается без такого поиска.
После подготовки аргументов, окружения и перенаправлений shell запускает найденный исполняемый файл и получает его код завершения. type -a cp помогает увидеть, не перекрыто ли имя alias или функцией. which не всегда отражает все правила самого shell.
Источник: www.gnu.org.