>/dev/null 2>&1 って何?
2026-07-29
techAI にコマンドを実行させると、こんなコマンドをよく書いてきます。
command >/dev/null 2>&1雰囲気で読み飛ばしていましたのですが、これの意味をちゃんと理解しようと思いました。
1 と 2 は出力先の番号
1 と 2 は出力先の番号を表しています。
| 番号 | 名前 | 主な用途 |
|---|---|---|
0 | 標準入力 | キーボードやパイプからの入力 |
1 | 標準出力 | 通常の実行結果 |
2 | 標準エラー出力 | エラーや警告 |
>: 出力先を変更する
> は、コマンドの出力先を切り替える記号です。
何も指定しなければ、すべての出力は画面に表示されます。
> を使うと、それらをファイルなど別の場所へ送れます。
command 1>stdout.log 2>stderr.log
command >stdout.log 2>stderr.log # 1 は省略可能/dev/null: 書き込んだ内容が消える特殊な場所
/dev/null は、書き込んだ内容が消える特殊な場所です。
command >/dev/nullそのため、この例では標準出力だけが表示されなくなります。標準エラー出力はそのまま画面に表示されます。
&: ファイルディスクリプタを参照する
& は、後ろの数字をファイル名ではなく、ファイルディスクリプタとして扱うための記号です。
`2>1` -> `1` という名前のファイルに出力
`2>&1` -> 標準出力と同じ出力先に出力まとめ
command >/dev/null 2>&1>: 出力先を変更する/dev/null: 書き込んだ内容が消える特殊な場所2>: エラーの出力先を変更する2>&1: 標準出力と同じ場所に出力する
つまり、標準出力と標準エラー出力の両方が /dev/null に送られ、画面には何も表示されません。