Хоча деякі інші відповіли на це добре, я хотів би додати кілька думок:
1) Консультація з PATH проводиться лише в тому випадку, якщо в запущеному файлі файлів немає елементів шляху. деякийкоманд буде шукати в $ PATH, ./somecommand
або /usr/bin/somecommand
, або ../../bin/somecommand
просто використовувати правила каталогу, а не PATH
Якщо в PATH є кілька виконуваних файлів з тим самим іменем, який із них є кращим?
Він зупиняється на першому, який знайде, читаючи $ PATH зліва направо.
Чи включається поточний каталог у пошук при виконанні файлу?
Якщо поточний каталог знаходиться в PATH, тоді його шукають. Пам'ятайте, що порожній каталог у PATH включає поточний каталог. напр., PATH =: / usr / bin (ведучий порожній) PATH = / usr / bin: (трейлінг порожній) та PATH = / usr / bin :: / bin (середній порожній) ефективно включатимуть поточну робочу директорію.
Припустимо, у поточному каталозі є файл з ім'ям Executable.sh. Чи буде це працювати, якщо він буде виконаний $ Executed і. не є частиною ПАТУ?
Він ніколи не знайде його шляхом пошуку PATH. Якщо поточного dir немає в PATH, він не знайде його за допомогою PATH пошуку.
Це сказало (і, на жаль, додайте плутанини), якщо був би псевдонім або функція, яка виконувала команду, вона буде запущена. Або якщо у вашій оболонці був кеш місцеположення, а виконуваний файл був у кеші, він може його знайти. Отже, він ніколи не знайде його в PATH, але він може бути запущений іншими способами.
which <executable>
Команда згадування буде корисна в цій темі.