在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