क्या मैं 'nohup.out' का नाम बदल सकता हूं?


254

जब मैं दौड़ता हूं nohup some_command &, तो आउटपुट जाता है nohup.out; जो man nohupदेखने के लिए कहता है info nohup, बदले में कहता है:

यदि मानक आउटपुट एक टर्मिनल है, तो कमांड का मानक आउटपुट 'nohup.out' फ़ाइल में जोड़ा जाता है; अगर ऐसा नहीं लिखा जा सकता, तो इसे '$ HOME / nohup.out' फ़ाइल में जोड़ दिया जाता है; और अगर ऐसा नहीं लिखा जा सकता है, तो कमांड नहीं चलाया जाता है।

लेकिन अगर मेरे पास पहले से ही nohupआउटपुट के साथ एक कमांड का उपयोग हो रहा है /nohup.outऔर मैं एक और nohupकमांड चलाना चाहता हूं , तो क्या मैं आउटपुट को रीडायरेक्ट कर सकता हूं nohup2.out?

जवाबों:


416
nohup some_command &> nohup2.out &

और वोइला।


बैश संस्करण <4 के लिए पुराना सिंटैक्स:

nohup some_command > nohup2.out 2>&1 &

4
@ismail, अगर मुझे समझ में आता है, तो यह आउटपुट को stdout और nohup.out से दूर, nohup2.out में निर्देशित करता है। फिर क्या करता 2>&1&है?
डेविड लेबॉउर

12
2>&1stderrउसी आउटपुट फ़ाइल पर रीडायरेक्ट करता है stdoutजो इस मामले में हैnohup2.out
ismail

17
बैश 4 में, दो रीडायरेक्ट को एक के रूप में संक्षिप्त किया जा सकता है &> nohup2.out
ephemient

1
मैंने कोशिश की और nohup2.out की कोशिश की और यह काम करता है, लेकिन आप अपने बैश संस्करण को कैसे बता सकते हैं?
मॉर्कुट

9
@monkut bash --version
ismail

58

किसी कारण से, उपरोक्त जवाब मेरे लिए काम नहीं करता था; मैं इसे चलाने के बाद कमांड प्रॉम्प्ट पर नहीं लौटा, जैसा कि मैंने अनुगामी के साथ अपेक्षित था। इसके बजाय, मैंने बस कोशिश की

nohup some_command > nohup2.out&

और जैसा मैं चाहता हूं वैसा ही यह काम करता है। इस मामले में किसी और को छोड़कर उसी स्थिति में है। संदर्भ के लिए बैश 4.3.8 चल रहा है।


12

चूंकि फ़ाइल हैंडलर लिनक्स / यूनिक्स सिस्टम पर आई-नोड्स (जो फ़ाइल नामों से स्वतंत्र रूप से संग्रहीत होते हैं) को इंगित करता है आप nohup.outशुरू करने के बाद किसी भी समय किसी अन्य फ़ाइलनाम के लिए डिफ़ॉल्ट का नाम बदल सकते हैं nohup something&। तो निम्न में से कोई एक भी कर सकता है:

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

अब somethingकरने के लिए लाइनों कहते हैं nohup2.outऔर something2करने के लिए nohup.out


10

जब भी आप nohup कमांड से ऊपर चलते हैं, तो उपरोक्त तरीके आपके आउटपुट फ़ाइल डेटा को निकाल देंगे।

करने के लिए उपयोगकर्ता परिभाषित फ़ाइल में संलग्न उत्पादन आप उपयोग कर सकते >>nohup आदेश में।

nohup your_command >> filename.out &

यह कमांड पुराने डेटा को हटाए बिना आपकी फ़ाइल में सभी आउटपुट को जोड़ देगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.