cd
コマンドを使用してbashの作業ディレクトリを変更 できることはわかっています。
しかし、このコマンドを実行すると、次のようになります。
cd SOME_PATH && run_some_command
その後、作業ディレクトリは永続的に変更されます。このように一時的に作業ディレクトリを変更する方法はありますか?
PWD=SOME_PATH run_some_command
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'