222

cdコマンドを使用してbashの作業ディレクトリを変更 できることはわかっています。

しかし、このコマンドを実行すると、次のようになります。

cd SOME_PATH && run_some_command

その後、作業ディレクトリは永続的に変更されます。このように一時的に作業ディレクトリを変更する方法はありますか?

PWD=SOME_PATH run_some_command
4

3 に答える 3

405

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
于 2012-04-30T10:30:33.433 に答える
155

bashにはビルトインがあります

pushd SOME_PATH
run_stuff
...
...
popd 
于 2012-04-30T16:15:54.380 に答える
37

このようなものが動作するはずです:

sh -c 'cd /tmp && exec pwd'
于 2012-04-30T10:35:43.967 に答える