2>&1 で、標準エラーを標準出力にまとめる
2>&1 をばらすと以下の通り。
- 1 = 標準出力(stdout)— 正常な出力
- 2 = 標準エラー出力(stderr)— エラーメッセージ
- > = リダイレクト(出力先を変える)
- &1 = 「ファイルディスクリプタ1(stdout)と同じ場所」
つまり 2>&1 は 「stderr を stdout にまとめる」 という意味
これがないと、パイプで tail などに渡す時、エラーだけが貫通する。
パイプはシェルの仕様として fd 1(stdout)だけを次のコマンドの入力に接続するため。