暂时更改bash中的当前工作目录以运行命令

时间:2012-04-30 10:28:22

标签: bash shell terminal working-directory

我知道我可以使用cd命令在bash中更改我的工作目录。

但如果我执行此命令:

cd SOME_PATH && run_some_command

然后工作目录将永久更改。有没有办法像这样暂时更改工作目录?

PWD=SOME_PATH run_some_command

3 个答案:

答案 0 :(得分:251)

您可以通过将命令行括在一对括号中来运行子代中的cd和可执行文件:

(cd SOME_PATH && exec_some_command)

演示:

$ pwd
/home/abhijit
$ (cd /tmp && pwd)  # directory changed in the subshell
/tmp 
$ pwd               # parent shell's pwd is still the same
/home/abhijit

答案 1 :(得分:101)

bash有内置

pushd SOME_PATH
run_stuff
...
...
popd 

答案 2 :(得分:23)

这样的事情应该有效:

sh -c 'cd /tmp && exec pwd'