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

Sal*_*rik 0 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

有人知道为什么吗?

谢谢.

che*_*ner 5

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

{ wc -l Files/Unused-CMA_host.txt | awk '{print $1}' ; } > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

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

wc -l Files/Unused-CMA_host.txt 2> /dev/null | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

对于不存在的文件,awk只需从空流中读取并且不执行任何操作.