コマンドの出力内容を「>」でリダイレクトした場合でも、エラーメッセージはリダイレクトされず、そのままコンソールに出力されてしまう。たとえば、ターミナル上で次のコマンドを実行した場合、出力内容は「result.txt」へ記録されるが、それでもエラーメッセージが画面上に表示されてしまうという具合だ。 上記のようにエラーメッセージ(ls: nonexistent: ...)がターミナル上に表示される。 これは、エラーメッセージが「標準出力」(STDOUT)とは別の「標準エラー出力」(STDERR)に出力されているためだ。標準エラー出力を抑制したい場合には「2> /dev/null」と指定し、ヌル(null)デバイスへリダイレクトすればよい。また標準エラー出力を記録したい場合には、「2> error.txt」としてリダイレクトしよう。