-1

У меня есть две программы с именем abc в разных каталогах (/dir1/ и /dir2/). Каждый из этих каталогов содержит другие программы. В общем, я бы хотел чтобы команда dir1 искала команду перед dir2 . Однако в случае с abc я бы хотел, чтобы версия в dir2 выполнялась по умолчанию. Как я могу сделать это?

Я попытался alias через alias abc="/dir2/abc" однако это не работает, если команда вызывается другой программой. Как я могу сделать это по умолчанию каждый раз, когда кто-то пытается вызвать abc?

1 ответ1

0

На этот вопрос ответили на другом сайте stackexchange. Вот решение для всех, кто заинтересован:

https://unix.stackexchange.com/questions/228701/change-the-default-directory-of-one-specific-program-without-changing-its-path

Вот вариант, который работает для меня (цитата из ответа):

Вариант 1. Создайте папку переопределения на вашем пути

Если вам нужно, чтобы эти программы вызывались непрямыми способами (как, например, в некоторых приложениях, запускаемых оконным менеджером, например, g++ или python), вам следует отредактировать свой путь. Вы можете просто добавить новую папку в начало вашего пути в вашем ~/.bashrc:

экспортируйте PATH =/home/username/.bin:$ PATH и поместите две символические ссылки, чтобы указать на соответствующие программы:

ln -s /usr /bin /python /home/username/.bin/python ln -s /usr /local /bin /g++ /home/username/.bin/g++ Таким образом, как только ваш ~ /.bashrc будет правильно получен (выйдите, затем войдите снова), все должно найти правильный питон и правильный g++.

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