दूसरी आज्ञा के साथ
:~$ ls macreave.sh fgvdvg > testo 2>&1
आप ls
stderout ( 2>&1
) और फ़ाइल के लिए stdout की तुलना में एक ही दर्जकर्ता को लिखे जाने का कारण बना सकते हैं testo
: तो आपके पास एक अद्वितीय फ़्लक्स है जो आपकी फ़ाइल में समाप्त होता है।
इसके बजाय पहले कमांड के साथ
ls macreave.sh fgvdvg > testo 2> testo
आप उसी फ़ाइल में स्वतंत्र रूप से रीडायरेक्ट कर रहे हैं testo
। समस्या पाइपिंग है और पुनर्निर्देशन एसिंक्रोनस हो सकता है ( यह उत्तर भी देखें ); आपके पास 2 फ़्लक्स हैं जो आपकी फ़ाइल में इसे फिर से बनाने दोनों को खत्म करते हैं।
ऐसा लगता है:
- तेजी से stderror थी (कुछ बाइट्स के लिए) जो एक फ़ाइल
testo
( >
) बनाता है और ls के अंदर लिखता है : a
- तब यह स्टडआउट आ जाता है जो एक ही फाइल (
>
) को मिटाता है जो अंदर मिटा देता है और आउटपुट macreave.sh डालता है
- अंत में यह stderr का दूसरा भाग आता है जो फ़ाइल में लिखता है जो ccess fgvdvg रहता है : ऐसी कोई फ़ाइल या निर्देशिका नहीं ।
हो सकता है अगर आप फिर से अमल करते हैं तो आपके पास एक अलग परिणाम होगा।
संदर्भ