Вы можете использовать type
или command -v
. Вывод type
понятен человеку; вывод command -v
может быть выполнен Bash.
Обратите внимание, что они на самом деле немного отличаются. type
и command
найдите хешированное значение команды. То есть, если вы печатаете cmd
, type cmd
или command -v cmd
скажет вам точно , что будет работать. Они также работают с псевдонимами, функциями Bash и встроенными функциями Bash (хотя type -p
игнорируют их и возвращают только истинные файлы).
which
просто делает поиск по PATH. Это отличается, потому что:
- Если существует псевдоним, функция или встроенный модуль с тем же именем, он будет вызван вместо этого.
- Если команда была добавлена ранее в PATH с момента последнего хэширования, она будет найдена
which
, но при выполнении этой команды будет использоваться хешированное значение (вы можете принудительно обновить хеш в Bash с помощью hash -r
).
Обычно люди действительно хотят type
, which
по крайней мере, для интерактивного использования, поскольку они используют его, чтобы выяснить, "откуда эта команда приходит, когда я ее запускаю?" Вы должны использовать толькоwhich
если вы действительно хотите сделать поиск PATH.