make -C /path/to/dir
Comme indiqué dans d'autres réponses, make(1) a un -C
option pour cela; plusieurs commandes ont des options similaires (par exemple tar). Il est utile de noter que pour les autres commandes dépourvues de telles options, les options suivantes peuvent être utilisées :
(cd /dir/path && command-to-run)
Cela exécute la commande dans un sous-shell dont le répertoire de travail a d'abord été modifié (tout en laissant le répertoire de travail du shell parent seul). Ici &&
est utilisé à la place de ;
pour détecter les cas d'erreur où le répertoire ne peut pas être modifié.
Si la raison pour laquelle vous ne voulez pas accéder à un répertoire est que vous devez rester dans le répertoire courant pour une tâche ultérieure, vous pouvez utiliser pushd et popd :
pushd ProjectDir ; make ; popd
Cela va dans ProjectDir, exécute make et revient là où vous étiez.