web-dev-qa-db-ja.com

Unixでは、最初にそのディレクトリにcdせずにディレクトリで「make」を実行できますか?

Unixでは、最初にそのディレクトリにcdせずにディレクトリで「make」を実行できますか?

195
user46795

make -C /path/to/dir

304
bmotmans

他の回答で述べたように、make(1)にはこのための-Cオプションがあります。いくつかのコマンドには同様のオプションがあります(例:tar)。このようなオプションを持たない他のコマンドについては、以下を使用できることに注意してください。

(cd /dir/path && command-to-run)

これにより、最初に作業ディレクトリが変更されたサブシェルでコマンドが実行されます(親シェルの作業ディレクトリはそのまま残されます)。ここでは、&&の代わりに;を使用して、ディレクトリを変更できないエラーの場合をキャッチします。

94
Dave C

ディレクトリにcdしたくない理由が、後のタスクのために現在のディレクトリにとどまる必要があるためである場合、pushdとpopdを使用できます。

pushd ProjectDir ; make ; popd

それはProjectDirに入り、makeを実行し、元の場所に戻ります。

20
EnigmaCurry

また、使用することができます:

make --directory /path/to/dir
9
korst1k