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