В 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