В Unix я могу запустить "make" в каталоге без cd'ing в этот каталог?

В Unix я могу запустить "make" в каталоге без cd'ing в этом каталоге?

Ответ 1

make -C /path/to/dir

Ответ 2

Как отмечено в других ответах, make (1) имеет для этого параметр -C; несколько команд имеют аналогичные параметры (например, tar). Полезно отметить, что для других команд, которые не имеют таких параметров, можно использовать следующее:

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

Выполняет команду в под-оболочке, которая сначала изменила свой рабочий каталог (оставив только рабочий каталог родительской оболочки). Здесь && используется вместо ;, чтобы улавливать ошибки, когда каталог не может быть изменен.

Ответ 3

Если причина, по которой вы не хотите записывать каталог в каталог, заключается в том, что вам нужно оставаться в текущем каталоге для более поздней задачи, вы можете использовать pushd и popd:

pushd ProjectDir ; make ; popd

Это входит в ProjectDir, запускает make и возвращается туда, где вы были.

Ответ 4

Также вы можете использовать:

make --directory /path/to/dir