ごぼうのブログgobo-cello

>/dev/null 2>&1 って何?

2026-07-29

tech

AI にコマンドを実行させると、こんなコマンドをよく書いてきます。

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 に送られ、画面には何も表示されません。