Странное разрешение пути к команде
У меня есть редактор терминала 'nano', установленный в двух местах на моем Mac
/usr/bin/nano
/opt/local/bin/nano
Установки бывают разных версий. Тот в /usr
не поддерживает мою конфигурацию в ~/.nanorc
и тот, в /opt
делает.
Когда я открываю файл с помощью команды "nano file", отображаются ошибки, указывающие, что /usr
использовался, однако, если я запускаю 'which nano'; один в /opt
появляется.
Разве "который" не предназначен для поиска пути по умолчанию? И почему бы не обратиться к "нано" по тому же пути?
Я сделал обходной путь, добавив следующую строку в ~/.profile
alias nano='/opt/local/bin/nano'
1 ответ
Двоичные файлы хэшируются и разрешаются в том порядке, в котором их родительские каталоги появляются в переменной среды PATH. Настройте его в соответствии с вашими потребностями. По крайней мере, это верно для моего опыта с bash. Подумайте о том, чтобы заглянуть на страницу руководства вашей оболочки и найти COMMAND EXECUTION и PATH, если то, что я вам говорю, не относится к вашей оболочке.
Например, если бы я хотел foo
означать / home / me / bin / foo, а не / usr / local / bin / foo, тогда я бы поместил / home / me / bin / before / usr / local / bin в путь, где before означает слева от :
PATH = (...): / главная / мне / бен: (...): / USR / местные / бен: (...)
Путь обычно задается в / etc / profile или в ~ / .profile.