9

我有一个rm *.o命令Makefile来删除编译期间生成的所有目标文件。.o但是,如果某些文件不存在,则会输出一些错误信息。那么如何抑制错误信息输出呢?

4

3 回答 3

12

在 的上下文中make,比输出更重要的是,您不希望将结果rm视为失败。有两种方法可以处理它:

clean:
    -rm *.o    2> /dev/null
    rm -f *.o  2> /dev/null

第一种方法是在命令前面加上减号,这make表示忽略返回码。这是首选的make特定方式。第二种是使用-f标志,它只特定于rm.

最重要的是,您可以选择是否抑制输出2> /dev/null

于 2013-03-15T12:48:17.893 回答
6

在极少数情况下,可能还需要将输出重定向到/dev/null. 你可能想要做rm *.o > /dev/null 2>&1. 该> /dev/null部分将 stdout 发送到/dev/null,并2>&1表示将 stderr 发送到 stdout 要去的任何地方。

于 2013-03-15T12:40:25.767 回答
2

rm -f *.o

或者

rm *.o >& /dev/null

于 2013-03-15T12:39:41.590 回答