rm -rf 与 -rm -rf
在 Makefile 中,我读到:
-rm -rf(而不是 rm -rf)。 Makefile 行开头的第一个“-”是什么意思?
In a Makefile, I read:
-rm -rf (instead of rm -rf). What does the first "-" mean at the beginning of the line in a Makefile ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这意味着
make
本身将忽略来自rm
的任何错误代码。在
makefile
中,如果任何命令失败,则make
进程本身将停止处理。通过在命令前添加-
前缀,您可以通知make
无论命令的结果如何,它都应该继续处理规则。例如,makefile 规则:
如果
rm *.o
返回错误(例如,如果没有任何要删除的*.o
文件)。使用:将解决该特定问题。
旁白:尽管在您的特定情况下可能不需要它(因为
-f
标志似乎可以防止rm
在文件执行时返回错误不存在),在makefile
中显式标记该行仍然是一个好习惯 -rm
在某些情况下可能会返回其他错误,这使得您的意图明确。It means that
make
itself will ignore any error code fromrm
.In a
makefile
, if any command fails then themake
process itself discontinues processing. By prefixing your commands with-
, you notifymake
that it should continue processing rules no matter the outcome of the command.For example, the makefile rule:
will not remove the
*.a
files ifrm *.o
returns an error (if, for example, there aren't any*.o
files to delete). Using:will fix that particular problem.
Aside: Although it's probably not needed in your specific case (since the
-f
flag appears to preventrm
from returning an error when the file does not exist), it's still good practice to mark the line explicitly in themakefile
-rm
may return other errors under certain circumstances and it makes your intent clear.