背景 $ コマンド > outfile 2>&1 と $ コマンド 2>&1 > outfile は結果が異なります。 前者は標準出力、標準エラーともにoutfileに出力されるのに対し、後者は標準出力はoutfileに、標準エラーはターミナルに出力されます。 この違いを理解するためにUnixのシステムを深掘ってみます。 カーネルデータ構造 Unixシステムでファイルをオープンした場合は以下のようなデータ構造になります。 ref: https://www.usna.edu/Users/cs/aviv/classes/ic221/s16/lec/21/lec.html プロセステーブルエントリ ファイルテーブルエントリ v-nodeテーブルエントリ の3つの階層構造になっており、それぞれ説明します。 プロセステーブルエントリ 各プロセスはプロセステーブルに1つエントリを持ちます。プロセステー