Сделать исполняемый файл видимым для bash

У меня есть исполняемый файл: /opt/Eclipse/eclipse. Я хотел бы запустить его с любого пути из терминальной консоли. По этой причине я создаю символическую ссылку:

ln -s /opt/Eclipse/eclipse /usr/bin/eclipse

Но это не помогло запустить eclipse, просто купив набрав ./eclipse из любого места в окне терминала. Система не находит исполняемый файл. Я ожидал, что система найдет eclipse ссылку в /usr/bin. Где ошибка в моем мышлении?

0
задан 4 January 2018 в 19:22

3 ответа

Зачем вообще связывать это? Вы можете просто добавить /opt/Eclipse к PATH. В ваших ~/.bashrc:

PATH="/opt/Eclipse:$PATH"

, а затем

source ~/.bashrc

, тогда вы просто сможете запустить

eclipse
2
ответ дан 4 January 2018 в 19:22

Простое альтернативное решение с файлом .bashrc

Вместо создания символической ссылки вы можете просто добавить псевдоним в свой файл .bashrc ... Для этого вы можете начать с добавления alias eclipse='/file/pathway/to/executable' в конец вашего файла .bashrc. Затем вы можете проверить это, запустив source .bashrc и eclipse ...

0
ответ дан 4 January 2018 в 19:22
1110 Это действительно может быть немного удивительно с первого взгляда. bash (и другие оболочки) поддерживает хэш для быстрого поиска двоичных файлов в $PATH, когда пользователь выдает команду. Альтернативой может быть сканирование всех этих каталогов каждый раз, когда выдается команда, чтобы выяснить, что это значит. И это дорого.

При определенных обстоятельствах этот хэш не обновляется должным образом. Прочитайте здесь и здесь (раздел hash) для точных деталей.

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

hash -r

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

0
ответ дан 4 January 2018 в 19:22

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

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