2010-12-28 32 views
179

nohup some_command &を実行すると、出力はnohup.outになります。 man nohupは、順番に言うinfo nohupを見て言う:標準出力が端末である`nohup.out`の名前を変更できますか?

場合は、 コマンドの標準出力をファイル「nohup.out」へ 追加されます。 に書き込むことができない場合は、ファイル '$ HOME/nohup.out'に が追加されます。書き込むことができない の場合、コマンド は実行されません。

しかし、私はすでに出力が/nohup.outに行くとnohupを使用してコマンドを1つ持っていると私は別の、nohupのコマンドを実行したい場合は、私がnohup2.outに出力をリダイレクトすることができますか?

答えて

285
nohup some_command &> nohup2.out& 

およびvoila。 Bashのバージョン< 4用


古い構文:何らかの理由で

nohup some_command > nohup2.out 2>&1& 
+4

@ismailもし私が分かっていると、これはstdoutとnohup.outの出力をnohup2.outに出力します。それでは '2>&1&'は何をしますか? –

+12

'2>&1'は' stderr'を 'stdout'と同じ出力ファイルにリダイレクトします。この場合' nohup2.out' – ismail

+14

Bash 4では、2つのリダイレクトを '&> nohup2.out'と省略することができます。 – ephemient

43

、上記の答えは私のために動作しませんでした。私は後に&と期待していたので、コマンドプロンプトに戻っていませんでした。代わりに、私は単に試してみました。

nohup some_command > nohup2.out& 

これは私が欲しいのと同じように動作します。他の誰かが同じ状況にある場合に備えてここに残しておきます。参照のためにバッシュ4.3.8を実行しています。

+0

私はまったく同じ問題を抱えていて、あなたのソリューションはそれを解決しました。ありがとう。 – Sadjad

+0

私と同じです。 thnks –

+0

それは私のためにも働いた!ありがとう! –

10

ファイルハンドラがLinux/Unixシステム上のiノード(ファイル名とは別に保存されている)を指しているので、nohup something&を起動した後でいつもデフォルトのnohup.outの名前を他のファイル名に変更できます。だから、また、1次の操作を行うことができます:今

$ nohup something& 
$ mv nohup.out nohup2.out 
$ nohup something2& 

somethingnohup.outnohup2.outsomething2に行を追加します。

5

上記のnohupコマンドを実行すると、上記の方法で出力ファイルのデータが削除されます。

出力をユーザ定義ファイルに追加すると、nohupコマンドで>>を使用できます。

nohup your_command >> filename.out & 

このコマンドは、古いデータを削除せずにすべての出力をファイルに追加します。

関連する問題