1

У меня есть несколько мест на моем компьютере, которые имеют исполняемые файлы, и все они добавляются в PATH .

Иногда бывают случаи, когда у меня есть несколько исполняемых файлов с одинаковыми именами, которые либо имеют разные конфигурации, либо делают разные вещи полностью. Например, у меня есть встроенная команда Windows FIND , и у меня также есть порт Linux для find для Windows. Оба они очень полезны сами по себе, но делают совершенно разные вещи.

Когда я выполняю FIND из командной строки; по умолчанию выполняется версия Windows, если я не нахожусь в каталоге с версией Unix. В данном случае это в основном то, что я хочу, но есть ситуации, которые отличаются. Я знаю, что исполняемый файл, который будет выполняться, всегда будет выводиться при вводе which <executable name> .

Мой вопрос: как этот исполняемый файл выбирается над другим? Почему Windows выбирает Git расположенный в ...\msysgit\bin\git.exe того, который находится в D:\bin\git.exe? Оба места находятся на PATH . Это что-то глупое, как порядок записей PATH?

1 ответ1

5

Windows сначала проверяет текущий рабочий каталог, затем проверяет каждый путь в переменной PATH слева направо и, наконец, проверяет системные расположения (например,% WINDIR%). Это почти идентично Linux, за исключением того, что Linux не проверяет "." до PATH.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .