make -C /path/to/dir
Jak je uvedeno v jiných odpovědích, make(1) má -C
možnost pro toto; několik příkazů má podobné možnosti (např. tar). Je užitečné poznamenat, že pro ostatní příkazy, které takové možnosti nemají, lze použít následující:
(cd /dir/path && command-to-run)
Toto spustí příkaz v dílčím prostředí, jehož pracovní adresář se nejprve změní (přičemž pracovní adresář nadřazeného prostředí zůstane samotný). Zde &&
se používá místo ;
k zachycení chybových případů, kdy adresář nelze změnit.
Pokud důvod, proč nechcete cd do adresáře, je ten, že potřebujete zůstat v aktuálním adresáři pro pozdější úlohu, můžete použít pushd a popd:
pushd ProjectDir ; make ; popd
To přejde do ProjectDir, spustí make a vrátí se tam, kde jste byli.