在Unix中,我可以在目录中运行'make'而不用先到那个目录cd?
在Unix中,我可以在目录中运行“make”,而不用先到那个目录cd?
make -C /path/to/dir
正如其他答案所指出的,make(1)有一个-C
选项; 几个命令有类似的选项(如焦油)。 请注意,对于缺less这些选项的其他命令,可以使用以下内容:
(cd /dir/path && command-to-run)
这将在一个子shell中运行该命令,该子shell首先更改了其工作目录(同时仅保留父shell的工作目录)。 这里&&
用来代替;
捕捉目录无法更改的错误情况。
如果你不想cd到某个目录的原因是因为你需要留在当前目录中以备以后使用,可以使用pushd和popd:
pushd ProjectDir ; make ; popd
进入ProjectDir,运行make,然后返回到原来的位置。
你也可以使用:
make --directory /path/to/dir