2

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

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

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

Благодарю.

6 ответов6

8

Вы можете указать полный путь к команде, когда вы запускаете ее:

/usr/bin/execfile

или же

/usr/local/bin/execfile

запустить точный файл по этому пути

1
/usr/local/bin/execfile

или же

/usr/bin/execfile
1

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

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

и проверьте, связаны ли они вместе

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

1

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

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

echo $PATH

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

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

экспорт PATH =/bin:$ PATH

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

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

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

Для общесистемного изменения введите

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

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

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

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

Смотрите раздел "Выполнение команд".

1

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

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

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

0
/usr/local/bin/execfile

/usr/bin/execfile

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