重定向到/ dev / null:没有这样的文件或目录

时间:2013-03-12 12:40:52

标签: bash

我想知道是否有人可以帮我解决这个错误:

  

wc:Files / Unused-CMA_host.txt:没有这样的文件或目录

该文件不存在,那么我想将输出重定向到/ dev / null

我尝试使用这句话> /dev/null 2>&1,这句话在其他情况下有效,但不在这里:

wc -l Files/Unused-CMA_host.txt | awk '{print $1}' > /dev/null 2>&1

有人知道为什么吗?

感谢。

1 个答案:

答案 0 :(得分:5)

重定向适用于管道的各个组件,而不是整个管道。在您的示例中,您只重定向awk的标准输出。要重定向整个管道的标准错误和标准输出,需要一个命令组,例如

{ wc -l Files/Unused-CMA_host.txt | awk '{print $1}' ; } > /dev/null 2>&1

但是,如果文件不存在,则不会有任何标准输出。也许您想重定向标准错误以抑制错误消息?然后你可以简单地使用

wc -l Files/Unused-CMA_host.txt 2> /dev/null | awk '{print $1}'

如果文件不存在,awk只会从空流中读取而不执行任何操作。