Лучший способ выполнить в определенной папке

Можно exec в конкретной папке, а не мне нужно использовать две команды отдельно?

например

cd /opt/folderA
exec ....

cd /opt/folderB
exec ....

2 ответа

Единственный способ изменить текущий рабочий каталог для процесса:

а) запущенная программа меняет его, выполнив команду cd из самой программы

б) сначала перейдите в каталог, а затем запустите программу (наследует CWD из среды родительской оболочки)

c) манипулировать файлом /proc/[pid]/cwd. Единственный способ сделать это возможно - запустить отдельную оболочку bash, определить ее pid, изменить вышеупомянутый файл (ссылку), а затем запустить программу из этой оболочки bash.

Итак, чтобы ответить на ваш вопрос, нет никакой возможности обойти команду "cd", кроме опции (c), которая на самом деле включает в себя больше шагов, чем просто сначала запускает "cd".

Если эти две команды отличаются, вы можете добавить папку в вашу среду $PATH.

export PATH=$PATH:folderA:folderB

Или вы можете использовать псевдоним

alias fromA=/opt/folderA/command
alias fromB=/opt/folderB/command

после этого вы можете напрямую использовать

fromA

Добавление этого в ваш.bashrc сделает это навсегда.

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