У меня есть исполняемый файл, назовем его exec. Он живет в каталоге, ради аргумента под названием dir. Допустим, это в корне файловой системы. Я могу запустить этот исполняемый файл, выполнив
cd /dir
./exec
. Если я попытаюсь запустить его из любого другого места, выполнив
/dir/exec
, он не запустится. Из сообщения об ошибке, которое он выдает, похоже, что он пытается найти файлы поддержки в каталоге, из которого была запущена команда, а не в своем собственном каталоге. Пока что не огромная проблема. Однако я хотел бы присвоить псевдоним этой команде, чтобы я мог вызывать ее из любого места. Я могу написать псевдоним следующим образом:
alias foo="cd /dir;./exec &"
Но это оставляет мой терминал в /dir
, который я не хочу. Я также не хочу возвращаться в какой-то произвольный каталог, я хочу остаться там, где я был.
Можно ли это сделать?
Да, запустите другую оболочку:
alias foo="sh -c 'cd /dir; ./exec &'"
Или используйте подоболочку:
alias foo="(cd /dir; ./exec &)"
Можно также сделать как это: предположите, что файл для выполнения где угодно называют: executeme
chmod +x executeme
sudo ln-s executeme/usr/bin/
executeme