多くのコマンドが「静かな」オプションを提供するのはなぜですか?

多くのコマンドが「静かな」オプションを提供するのはなぜですか?

標準出力を空のファイルにリダイレクトして同じ結果を簡単に取得できますが、なぜ多くのコマンドがオプションを提供したり、-q出力を抑制したりするのですか?--quiet

ベストアンサー1

  • シェルでは簡単にリダイレクトできますが、シェルコマンドラインを使用せずに他の言語でコマンドを実行するなど、他の状況では簡単ではありません。シェルでも:

    find . -type f -exec grep -q foo {} \; -printf '%s\n'
    

    すべて含まれているものを印刷してくださいfoo。にリダイレクトすると、出力が/dev/null失われます。 (つまり、追加のシェルを作成すること)に頼る必要があります。findgrep-exec sh -c 'exec grep foo "$1" > /dev/null' sh {} \;

  • grep -q fooタイピング時間が思ったより短いです。grep foo > /dev/null
  • 次にリダイレクトする/dev/nullということは、出力が記録され続けてから削除されることを意味します。これは、出力を書き込まない(および割り当てずに書き込む出力を準備する)よりも効率が悪くなります。
  • 追加の最適化を可能にします。たとえば、grepwithは出力が不要であることを-q知っているため、grep最初の一致を探すとすぐに終了します。の場合は、grep > /dev/nullまだすべての一致を見つけようとします。
  • 静かな必ずしも意味するわけではない静かな。一部のコマンドでは、これは次のことを意味します。詳細を減らします。(逆に-v|--verbose)。たとえば、aとamplayerがあります。一部のコマンドでは、を使用して詳細を3倍に減らすことができます。--quiet--really-quiet-qqq

おすすめ記事