リダイレクションで標準エラー出力をファイルに出力する方法とその応用
まず、リダイレクションとは
「標準入力の入力先、または、標準出力の出力先を変更する機能」のことである。
これを使用することで、入力先や出力先をファイルに指定できたりする。
使い方はいたって簡単で、>
や<
の後に入出力先を指定するだけである。
出力の切り替えの例
例えば、普通にファイルを指定してcatコマンドを使用した場合は、
$ cat file.txt (file.txtの中身)
となり、普通にファイルの中身を表示するだけだが、
$ cat file.txt > newfile.txt
とすると、画面上では何も出力はされないが、file.txtの中身がnewfile.txtにコピーされる。
また>
の部分を>>
とすれば、newfile.txtの元の内容を消さずにfile.txtの内容を追記させることも可能。
つまり、あるファイルの最後に何か追記したいときは、わざわざエディタを開かなくても
cat (追記したい内容) >> (追記するファイル)
とするだけで事足りる。
標準エラー出力を切り替える
>
の部分を2>
に変える。
これを使えば、例えば以下のjavaプログラムがあったとき(コンパイル済みと仮定)に
public class Sample { public static void main(String[] args){ System.out.println("標準出力"); System.err.println("標準エラー出力"); } }
以下のコマンドを実行すれば、
$ java Sample > log 2> errlog
標準出力と標準エラー出力を別々のファイルに保存したりできる。
(上の例では、logに「標準入力」、errlogに「標準エラー出力」がそれぞれ保存されている。)