Рабочий каталог при запуске команды

У меня есть исполняемый файл, назовем его exec. Он живет в каталоге, ради аргумента под названием dir. Допустим, это в корне файловой системы. Я могу запустить этот исполняемый файл, выполнив

cd /dir
./exec

. Если я попытаюсь запустить его из любого другого места, выполнив

/dir/exec

, он не запустится. Из сообщения об ошибке, которое он выдает, похоже, что он пытается найти файлы поддержки в каталоге, из которого была запущена команда, а не в своем собственном каталоге. Пока что не огромная проблема. Однако я хотел бы присвоить псевдоним этой команде, чтобы я мог вызывать ее из любого места. Я могу написать псевдоним следующим образом:

alias foo="cd /dir;./exec &"

Но это оставляет мой терминал в /dir, который я не хочу. Я также не хочу возвращаться в какой-то произвольный каталог, я хочу остаться там, где я был.

Можно ли это сделать?

5
задан 19 January 2013 в 16:56

2 ответа

Да, запустите другую оболочку:

alias foo="sh -c 'cd /dir; ./exec &'"

Или используйте подоболочку:

alias foo="(cd /dir; ./exec &)"
0
ответ дан 19 January 2013 в 16:56

Можно также сделать как это: предположите, что файл для выполнения где угодно называют: executeme

  1. Если это не тип исполняемого файла следующая команда к maike это excutable

chmod +x executeme

  1. Если Вы находитесь в каталоге, где файл, делают символьную ссылку на него в каталоге bin (необходимо быть корнем, чтобы сделать это),

sudo ln-s executeme/usr/bin/

  1. Если все право, что Вы можете теперь экс-ют Ваш файл где угодно путем введения имени файла

executeme

0
ответ дан 19 January 2013 в 16:56

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

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