Временно измените текущий рабочий каталог в bash, чтобы запустить команду
Я знаю, что могу использовать команду cd
для изменения моей рабочей директории в bash.
Но если я выполню эту команду:
cd SOME_PATH && run_some_command
Затем рабочий каталог будет изменен навсегда. Есть ли способ временно изменить рабочий каталог таким образом?
PWD=SOME_PATH run_some_command
Ответы
Ответ 1
Вы можете запустить cd
и исполняемый файл в подоболочке, включив командную строку в пару круглых скобок:
(cd SOME_PATH && exec_some_command)
Демо:
$ pwd
/home/abhijit
$ (cd /tmp && pwd) # directory changed in the subshell
/tmp
$ pwd # parent shell pwd is still the same
/home/abhijit
Ответ 2
bash имеет встроенный
pushd SOME_PATH
run_stuff
...
...
popd
Ответ 3
Что-то вроде этого должно работать:
sh -c 'cd /tmp && exec pwd'