【问题标题】:automatically remove wildcard files when they exist存在时自动删除通配符文件
【发布时间】:2013-07-27 20:20:00
【问题描述】:

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

我试过了:

all: clean

clean:
    rm *~

但是,在成功删除*~ 后,它会令人讨厌地报错:

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

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

【问题讨论】:

    标签: makefile


    【解决方案1】:

    rm's -f flag 的作用之一是由于文件不存在而抑制诊断。

    根据 POSIX,-f 还可以防止 rm 的退出状态受到不存在的文件的影响,但(大概)历史上并非所有地方都是如此,所以 makefile clean规则通常在 rm 命令前面使用 - 来忽略任何非零退出状态,以防万一:

    clean:
        -rm -f *~
    

    【讨论】:

      猜你喜欢
      • 2014-06-28
      • 2012-02-07
      • 2022-11-19
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多