どうも。kikuです。
あるコマンドの実行結果をファイルに保存したいと思うことありますよね。
でもたまにやる程度だとなかなか覚えられないので、今回は忘備録としてまとめようと思います。
# コマンド > ファイル名
※「コマンド」は 例えば ls とか スクリプトだったりいろいろ
※「ファイル名」は出力ファイルの名前
とりあえず上ので「コマンド」の標準出力は「ファイル名」に書かれます。
これだけじゃなんなので、今回はもうちょっと掘り下げていきます。
# コマンド 2> ファイル名
こうすると「コマンド」の標準エラー出力が「ファイル名」に書かれます。
# コマンド 2>> ファイル名
さらにこうすると、「コマンド」の標準エラー出力が「ファイル名」に追記されます。
ちなみに今までのは上書きでした。
# コマンド 1> ファイル名 2> エラーファイル名
標準出力と標準エラー出力の両方が欲しい時はこんな感じ。
# コマンド > ファイル名 2>&1
標準出力と標準エラー出力の両方を一つにしたい時はこう書きます。
これを解説すると、2>&1 は標準エラー出力(2)を標準出力(1)へリダイレクトすることを表しています。結果として標準エラー出力を標準出力へ出力し、さらに標準出力を「ファイル名」へ出力するので、両方が「ファイル名」へ出力されます。
# コマンド > /dev/null 2>&1
あとこれ。こんな感じのはよく見かけるかもしれませんが、これは標準出力と標準エラー出力を捨てていることを意味しています。
/dev/null は「ごみ箱」みたいなものなのでいらないものはここに吐き出しておきましょう。
cronやshellなどでも使うことがあると思うのでこれらは覚えておいてもいいかと思います。