我正在运行watch make
,我想自动删除*~
上的make
个文件。
我试过了:
all: clean
clean:
rm *~
但是,在*~
成功删除后,它会令人烦恼地发出错误:
rm: cannot remove `*~': No such file or directory
如果没有要清理的文件,我只想让它保持沉默。在这种情况下如何让它保持沉默?
答案 0 :(得分:3)
rm
's -f
flag的一个影响是抑制由于文件不存在而导致的诊断。
根据POSIX,-f
还会阻止rm
的退出状态受到不存在的文件的影响,但(据推测)历史上并非所有情况都是如此,所以makefile clean 规则通常在-
命令前面使用rm
,以便在以下情况下忽略任何非零退出状态:
clean:
-rm -f *~