デフォルトでは、標準出力 (stdout) の出力先はモニタで、標準入力の入力元はキーボードになっています。 リダイレクトやパイプは、これを変更する役割を持っています。
command > file
– command の標準出力の内容をファイルへ出力するcommand < file
– ファイルの内容を command の標準入力へ入力するcommand1 | command2
– command1 の標準出力を command2 の標準入力へ繋ぐ$ sort -r < list.txt # リダイレクトを使う場合
$ cat list.txt | sort -r # パイプを使う場合
bash$ command &> output.txt
以下のように実行する方法もあり、Linux (bash) も Windows も共通の指定方法で実行できます。
bash$ command > output.txt 2>&1
‘2>&1’ は、STDERR(2) を STDOUT(1) に結合するという指示です。
bash$ command 1> stdout.txt 2> stderr.txt
bash$ command 2> stderr.txt
$ find / -name ifconfig 2> /dev/null
bash$ command1 2>&1 | command2
bash$ (command1 1> /dev/null) 2>&1 | command2