在 Unix 中,我可以运行“make”吗? 在一个目录中而不先 cd 到该目录?
在 Unix 中,我可以在目录中运行 make
而无需先 cd
' 进入该目录吗?
In Unix, can I run make
in a directory without cd
'ing to that directory first?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
make -C /path/to/dir
make -C /path/to/dir
正如其他答案中所述, make(1) 为此有一个
-C
选项; 有几个命令有类似的选项(例如 tar)。 值得注意的是,对于缺少此类选项的其他命令,可以使用以下命令:这在子 shell 中运行命令,该子 shell 首先更改其工作目录(同时保留父 shell 的工作目录)。 这里使用
&&
代替;
来捕获无法更改目录的错误情况。As noted in other answers, make(1) has a
-C
option for this; several commands have similar options (e.g. tar). It is useful to note that for other commands which lack such options the following can be used:This runs the command in a sub-shell which first has its working directory changed (while leaving the working directory of the parent shell alone). Here
&&
is used instead of;
to catch error cases where the directory can not be changed.如果您不想 cd 到某个目录的原因是因为您需要保留在当前目录中以执行后续任务,则可以使用 Pushd 和 popd:
这会进入 ProjectDir,运行 make,然后返回到您所在的位置是。
If the reason you don't want to cd to a directory is because you need to stay in the current directory for a later task, you can use pushd and popd:
That goes into the ProjectDir, runs make, and goes back to where you were.
您也可以使用:
Also you may use:
makefile:
或
等等。
makefile:
or
etc.