次のコマンドラインについて簡単に説明します。
grep -i 'abc' content 2>/dev/null
>演算子は、通常、出力をファイルにリダイレクトしますが、デバイスに出力することもできます。 >>を使用して追加することもできます。
数値を指定しない場合、標準出力ストリームが想定されますが、エラーをリダイレクトすることもできます
> file
は標準出力をファイルにリダイレクトします1> file
は標準出力をファイルにリダイレクトします2> file
はstderrをファイルにリダイレクトします&> file
は、stdoutとstderrをファイルにリダイレクトします
/dev/null
は、必要な入力を取得して破棄するヌルデバイスです。出力を抑制するために使用できます。
つまり、stderr(fd 2)をブラックホールにリダイレクトします(コマンドの出力を破棄します)。
リダイレクトの一般的な使用例:
command > /dev/null 2>&1 &
バックグラウンドでcommand
を実行し、stdoutとstderrを破棄します
command >> /path/to/log 2>&1 &
command
を実行し、ログファイルにstdoutとstderrを追加します。
/dev/null
はLinux/Unixではブラックホールとして扱われるため、これに何かを入れることはできますが、/dev/null
から戻すことはできません。
さらに、2>
は、stderr(つまり>
)をブラックホール(つまり2
)にリダイレクト(つまり/dev/null
)していることを意味します
あなたのコマンドは:
grep -i 'abc' content 2>/dev/null
このような別のスラッシュで終了しようとしないでください-2>/dev/null/
(ディレクトリではありません)。
grep -i 'abc'コンテンツは、エラーを含むコンソールに表示される出力を生成します。
2>/dev/null
を指定すると、エラーが除外され、コンソールに出力されなくなります。
より詳細には:2はエラー記述子を表し、エラーが書き込まれる場所です。デフォルトでは、コンソールに出力されます。
\>
は、指定された場所、この場合は/dev/null
に出力をリダイレクトします
/dev/null
は、無視する出力を送信する標準のLinuxデバイスです。