Как выполнить различные команды с тем же именем?

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

which execfile
/usr/local/bin/
/usr/bin/

таким образом у меня есть два файла с тем же именем в двух различных каталогах. Как я могу указать точно который команда работать?

2
задан 07.12.2019, 12:20

6 ответов

можно указать полный путь к команде при выполнении его тип:

/usr/bin/execfile

или

/usr/local/bin/execfile

петлять в том пути

9
ответ дан 08.12.2019, 04:39
/usr/local/bin/execfile

или

/usr/bin/execfile
1
ответ дан 08.12.2019, 04:39

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

Введите это в терминале:

echo $PATH

видеть Ваше фактическое содержание переменной окружения PATH.

Например, если Вы хотите всегда выполнить первые исполняемые файлы внутри / мусорное ведро, удостоверьтесь, что / мусорное ведро прибывает сначала в $PATH. Можно указать ПУТЬ в .profile файле в корневом каталоге. Таким образом для примера выше, отредактируйте файл и поместите эту строку в конец:

экспортируйте СОЕДИНЯЮТ =/bin каналом: $PATH

Это будет работать только на Вашего пользователя. Если Вы захотите указать $PATH способом в масштабе всей системы (то он будет работать на всех пользователей за исключением тех, кто изменяет его в их .profile), добавьте ту же строку выше в файле/etc/profile (Вам будут нужны полномочия пользователя root.)

Также помните, что файлы профиля только анализируются первоначально. Это означает, что при редактировании персонального .profile файла необходимо будет заставить оболочку повторно проанализировать его. Можно сделать это выходить из системы и вход в систему снова или иначе ввод:

источник ~/.profile

Для изменения в масштабе всей системы ввести

источник/etc/profile

Это заставит Вашу текущую сессию оболочки повторно проанализировать файл профиля. Если Вы хотите, чтобы Ваша полная загруженная система проанализировала его снова, я думаю, что Вы лучше перезапускаете свою сессию.

Также помните, что это может измениться при использовании оболочки кроме удара.

Можно найти некоторую интересную информацию в странице справочника удара: http://linux.die.net/man/1/bash

Посмотрите раздел "Command Execution".

1
ответ дан 08.12.2019, 04:39

Запишите псевдоним в ~/.profile:

alias execfile='/usr/local/bin/execfile'

После следующего входа в систему правильная версия будет выбрана автоматически. Запустите другие с полного пути.

1
ответ дан 08.12.2019, 04:39

также проверьте на то, что, если они оба принадлежат тому же файлу - как он, может быть ссылка

ls -al /usr/bin
ls -al /usr/local/bin

и проверьте, соединены ли они

если они связаны затем, можно выполнить любого без различий, еще необходимо указать полный путь

1
ответ дан 08.12.2019, 04:39
/usr/local/bin/execfile

/usr/bin/execfile
0
ответ дан 08.12.2019, 04:39

Теги

Похожие вопросы