Ви можете використовувати typeабо command -v. Результат typeчитається людиною; вихід command -vBash може бути виконаний Bash.
Зауважте, що насправді вони трохи відрізняються. typeі commandшукати хешоване значення команди. Тобто, якщо ви друкуєте cmd, type cmdабо command -v cmdскаже вам точно , що буде працювати. Вони також працюють над псевдонімами, функціями Bash і Bash вбудованими (хоча type -pвони ігнорують ці і повертають лише справжні файли).
whichпросто проводить пошук на ПАТ. Це інакше, тому що:
- Якщо є псевдонім, функція або вбудований з тим же ім'ям, він буде викликаний замість цього.
- Якщо команда була додана раніше в PATH з моменту останнього хешування, вона буде знайдена
which, але виконавши цю команду, використовуватиме хешоване значення (ви можете змусити оновити хеш в Bash за допомогою hash -r).
Зазвичай люди дуже хочуть type, whichпринаймні, не для інтерактивного використання, оскільки вони використовують його, щоб дізнатися, "звідки ця команда, коли я її виконую?" Вам слід користуватися, лише whichякщо ви дійсно хочете зробити пошук PATH.