Как изменить путь, который идет с выводом какой команды?
Когда я which mex
в системе Linux это дает путь, но я хочу изменить этот путь на другой. Как я могу установить этот путь по умолчанию в другое место?
1 ответ
На определенной системе я получаю этот вывод:
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Это означает, что при выполнении команды
$ foo
оболочка будет искать исполняемые файлы в следующем порядке:
/usr/local/bin/foo
/usr/bin/foo
/bin/foo
/usr/local/games/foo
/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
процесс, но не мешать системе в целом в долгосрочной перспективе.
Вы должны уточнить свой вопрос, чтобы спросить, что вы действительно хотите сделать, чтобы получить более подходящие ответы.