Linux の標準入力はファイル記述子 0 です。これはコマンドの入力であり、デフォルトはキーボードですが、ファイルまたは他のコマンドの出力であることもあります。
Linux の標準出力はファイル記述子 1 です。これはコマンドの出力であり、デフォルトは画面ですが、ファイルにすることもできます。
Linux の標準エラーはファイル記述子 2 です。これはコマンドのエラー出力です。デフォルトは画面ですが、ファイルにすることもできます。
リダイレクトの使用には次のルールがあります。
1) 標準入力 0、出力 1、およびエラー 2 は個別にリダイレクトする必要があり、1 回のリダイレクトで変更できるのはそのうちの 1 つだけです。
2) 標準入力0、標準出力1は省略可能です。(リダイレクト記号の左側に表示される場合)
3) ファイル記述子は、リダイレクト記号の左側にある場合は直接記述することができ、右側にある場合は先頭に & が付きます。
4) ファイル記述子とリダイレクト記号の間にスペースを入れることはできません。
command < filename 標準入力をファイル名 file にリダイレクトします
コマンド 0< filename は、標準入力を filename ファイルにリダイレクトします
command > filename 標準出力を filename ファイルにリダイレクトします (上書き)
command 1> filename 標準出力を filename file にリダイレクトします (上書き)
コマンド >> filename 標準出力を filename ファイルにリダイレクトします (追加)
コマンド 1>> filename は、標準出力を filename ファイルにリダイレクトします (追加)
コマンド 2> filename 標準エラーを filename ファイルにリダイレクトします (上書き)
コマンド 2>> filename は、標準出力を filename ファイルにリダイレクトします (追加)
command > filename 2>&1 標準出力と標準エラーを filename file にリダイレクトします (上書き)
command >> filename 2>&1 標準出力と標準エラーを filename file (追加) にリダイレクトします
コマンド < filename > filename2 標準入力を filename file にリダイレクトし、標準出力をリダイレクトします
filename2 ファイルに
コマンド 0< ファイル名 1> ファイル名 2 標準入力をファイル名 file にリダイレクトし、標準出力をリダイレクトします
filename2 ファイルに
あまり一般的ではない使用法をいくつか示します。
n<&- は入力番号 n を閉じることを意味します
<&- は標準入力 (キーボード) を閉じることを意味します
n>&- は出力番号 n をオフにすることを意味します
>&- は標準出力を閉じることを意味します