2011-10-26 10 views

答えて

217

だけ、しかし1行にcommand 2>> error 1>> output

を追加し>>は、ファイルがすでにデータを持っている場合は追加のためであることに注意してください。一方、>はファイル内の既存のデータを上書きします。

したがって、追加したくない場合はcommand 2> error 1> outputです。

デフォルトのファイル記述子が出力であるため、完了のために1>をちょうど>と書くことができます。したがって1>>は同じものです。

ので、command 2> error 1> outputはそのようcommand 2> error > output

+1

偉大な答え!私は '1>' '>'と書くことができるあなたの説明が本当に好きです – user784637

+0

これは 'command&2> err.log'のようにどう違うのですか?私はまったく混乱していると思います。 (すべてのbash pipe-ismsの適切な答えへのリンクは、順番に並んでいる可能性があります) – ThorSummoner

+4

@ThorSummoner http://www.tldp.org/LDP/abs/html/io-redirection。htmlは私があなたが探していると思うものです。 Fwiwは、 'command&2> err.log'のように見えますが、その構文のアンパサンドはターゲットとしてファイル記述子に使用されます。たとえば' command 1>&2'はstdoutをstderrに再ルーティングします。 – DreadPirateShawn

9

、次のようになります。

$ command >>output 2>>error 
11

それとも、1つのファイルに出力(標準出力&標準エラー出力)をミックスしたい場合は、使用したいことがあります。

command > merged-output.txt 2>&1 
+22

これは "command&> merged-output.txt"より簡単です –

+21

これは質問に対する答えではありません。 – Matthias

9

試用:

your_command 2>stderr.log 1>stdout.log 

詳細情報

符号09スルーは、ファイル記述bashであります。 0は標準入力を表し、1は標準出力を表し、2は標準エラーを表します。 39は、その他の一時的な使用のためのスペアです。

任意のファイルディスクリプタは、ファイルまたは別のファイルディスクリプタに、>オペレータを使用してリダイレクトできます。代わりに、オペレータ>>を使用して、空のファイルを作成する代わりにファイルに追加することができます。

使用法:

file_descriptor > ファイル名

file_descriptor > & file_descriptor

http://www.tldp.org/LDP/abs/html/io-redirection.htmlを参照してください。

+3

以前のコメントは、その答えが根本的に変更されたため、関連性がなくなりました。ここでは、出力を独立してリダイレクトする方法について説明します。 – Dom

関連する問題