cd
コマンドを使用して、bashで作業ディレクトリを変更できることを知っています。
しかし、このコマンドを実行すると:
cd SOME_PATH && run_some_command
その後、作業ディレクトリは永続的に変更されます。このように一時的に作業ディレクトリを変更する方法はありますか?
PWD=SOME_PATH run_some_command
コマンドラインをかっこで囲むことにより、サブシェルで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
bashには組み込みの
pushd SOME_PATH
run_stuff
...
...
popd
このような何かが動作するはずです:
sh -c 'cd /tmp && exec pwd'