存在时自动删除通配符文件

时间:2013-07-27 20:20:01

标签: makefile

我正在运行watch make,我想自动删除*~上的make个文件。

我试过了:

all: clean

clean:
    rm *~

但是,在*~成功删除后,它会令人烦恼地发出错误:

rm: cannot remove `*~': No such file or directory

如果没有要清理的文件,我只想让它保持沉默。在这种情况下如何让它保持沉默?

1 个答案:

答案 0 :(得分:3)

rm's -f flag的一个影响是抑制由于文件不存在而导致的诊断。

根据POSIX,-f还会阻止rm的退出状态受到不存在的文件的影响,但(据推测)历史上并非所有情况都是如此,所以makefile clean 规则通常在-命令前面使用rm,以便在以下情况下忽略任何非零退出状态:

clean:
    -rm -f *~