make -C /path/to/dir
Come notato in altre risposte, make(1) ha un -C
opzione per questo; diversi comandi hanno opzioni simili (ad esempio tar). È utile notare che per altri comandi privi di tali opzioni si può usare quanto segue:
(cd /dir/path && command-to-run)
Questo esegue il comando in una sub-shell che prima ha cambiato la sua directory di lavoro (lasciando da sola la directory di lavoro della shell madre). Qui &&
è usato al posto di ;
per rilevare i casi di errore in cui la directory non può essere modificata.
Se il motivo per cui non vuoi accedere a una directory è perché devi rimanere nella directory corrente per un'attività successiva, puoi usare pushd e popd:
pushd ProjectDir ; make ; popd
Questo va nella ProjectDir, esegue make e torna a dove eri.