我在rm *.o
中有一个Makefile
命令,用于删除编译期间生成的所有目标文件。但是,如果某个.o
文件不存在,则会输出一些错误信息。那么如何抑制错误信息输出呢?
答案 0 :(得分:11)
在make
的上下文中,比输出更重要的是,您不希望make将rm
的结果视为失败。有两种方法可以解决它:
clean:
-rm *.o 2> /dev/null
rm -f *.o 2> /dev/null
第一种方法是在命令前加一个减号,告诉make
忽略返回码。这是首选的make
特定方式。第二种是使用-f
标志,该标志仅针对rm
。
除此之外,您可以选择使用2> /dev/null
来抑制输出。
答案 1 :(得分:6)
在极少数情况下,可能还需要将输出重定向到/dev/null
。你可能想做rm *.o > /dev/null 2>&1
。 > /dev/null
部分将stdout发送到/dev/null
,2>&1
表示将stderr发送到stdout所在的位置。
答案 2 :(得分:2)
rm -f *.o
或
rm *.o >& /dev/null