Changer temporairement le répertoire de travail actuel dans bash pour exécuter une commande

Je sais que je peux utiliser la commande cd pour changer mon répertoire de travail en bash.

Mais si je fais cette commande:

 cd SOME_PATH && run_some_command 

Ensuite, le répertoire de travail sera modifié de manière permanente. Y a-t-il un moyen de changer le répertoire de travail de façon temporaire comme ceci?

 PWD=SOME_PATH run_some_command 

Vous pouvez exécuter le cd et l’exécutable dans un sous-shell en plaçant la ligne de commande entre deux parenthèses:

 (cd SOME_PATH && exec_some_command) 

Démo:

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

bash a un intégré

 pushd SOME_PATH run_stuff ... ... popd 

Quelque chose comme ça devrait fonctionner:

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