Как изменить путь, который идет с выводом какой команды?

Когда я which mex в системе Linux это дает путь, но я хочу изменить этот путь на другой. Как я могу установить этот путь по умолчанию в другое место?

1 ответ

На определенной системе я получаю этот вывод:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Это означает, что при выполнении команды

$ foo

оболочка будет искать исполняемые файлы в следующем порядке:

  1. /usr/local/bin/foo
  2. /usr/bin/foo
  3. /bin/foo
  4. /usr/local/games/foo
  5. /usr/games/foo

и запустить первый встреченный.

which foo вернет путь первого из этих совпадений или ничего, если исполняемый файл с именем foo не существует в PATH каталоги (обратите внимание на which -a переключатель, который будет возвращать все совпадения по порядку, а не только первый).

Вы можете, например, изменить порядок каталогов в PATH переменная для изменения порядка поиска, но это, вероятно, не решение вашего "реального" вопроса. Если у вас есть исполняемый файл в каталоге с более высоким приоритетом, который "затеняет" нужный файл, вы можете либо удалить первый, либо просто выполнить файл с более низким приоритетом с полным путем.


Я узнаю mex как часть установки Matlab. Пытаясь угадать, что вы хотите сделать, возможно, вы могли бы временно изменить PATH для одного запущенного процесса как такового:

$ PATH=/home/user/myownexecs:$PATH matlab

где /home/user/myownexecs/mex это mex исполняемый файл, который вы хотите дать приоритет. Это временно изменит PATH переменная для matlab процесс, но не мешать системе в целом в долгосрочной перспективе.

Вы должны уточнить свой вопрос, чтобы спросить, что вы действительно хотите сделать, чтобы получить более подходящие ответы.

Другие вопросы по тегам