如何将数据输出到文件,同时抑制终端上的输出?

How to output data to file but also suppress output on the terminal?

我试图在 python 中执行系统命令,但我正在使用 > /dev/null 2>&1 隐藏所有输出。我试图只显示非常具体的输出,但我也试图将数据输出到文件 > grep.txt 以便我可以 grep 出特定数据。然而,当我在命令中使用 /dev/null 时,grep.txt 中什么也没有出现,它似乎会变成 /dev/null。

我试过以下方法:

#command > grep.txt > /dev/null 2>&1
#command > grep.txt | > /dev/null 2>&1
#command > grep.txt & > /dev/null 2>&1
#command > grep.txt & /dev/null 2>&1

但似乎没有任何效果。它是一个或另一个。我只想将结果保存到 grep.txt 文件,但同时隐藏终端上的输出。

我什至尝试过在使用 > /dev/null 时仅使用一个变量来存储命令的结果,但该变量始终为空!所以我只能假设它会 /dev/null.

请帮忙! xD

抱歉这个愚蠢的问题!

/dev/null相当于什么都不写。它有一个文件接口,但不记录任何东西。如果要检索数据,请将其写入文件:

command > grep.txt 2>&1

现在 grep.txt 拥有您要查找的所有数据。不会有输出打印到终端。您从左到右阅读重定向:stdout 转到文件,stderr 转到 stdout 当前去的任何地方。 2>&1 grep.txt 将读取为 stderr 转到标准输出(终端),stdout 转到文件,因此您将看到错误输出但正常输出将转到文件。