コマンドをpvにパイプしますが、元のコマンドのすべての出力を非表示にします。

コマンドをpvにパイプしますが、元のコマンドのすべての出力を非表示にします。

を使用しようとしていますが、pvpvの出力は見え続けながらパイプで接続されたコマンドの出力を隠したいと思います。使用してもcommand &> /dev/null | pv効果はありません(たとえば、pvはデータを受信しません)。commandstdout と stderr から出力を生成します。どちらも見たくありません。

grep Pipe( ) を使ってみましたcommand &> /dev/null | pv | grep <=>が、たまに端末に内容が出力されることがあります。

答え1

man pv説明する:

これを使用するには、2つのプロセス間のパイプに挿入し、適切なオプションを使用します。標準入力は標準出力に渡され、進行状況は標準エラーに表示されます。

表示される出力はから出ますpv。進行状況バーはstderrにあり、パイプする内容はstdoutにあります。出力をリダイレクトできます。

cmd | pv > /dev/null

それでも進行状況バーが出力されます。

コマンドが生成される場合それstderrのテキストにも同様に適用されます。明示的にリダイレクト/dev/null、出力を次に渡しますpv

cmd 2>/dev/null | pv > /dev/null

関連情報