लिनक्स बिल्ली उदाहरण


3

क्या आप कृपया मुझे समझा सकते हैं: 'cat <file.txt> file.txt' file.txt को खाली क्यों बनाती है?


बस नीचे दो उत्तरों को जोड़ने के लिए: यदि आप एक लूप बनाना चाहते थे (अंतहीन रूप से भरने के लिए file) तो आप cat <file.txt >>file.txtफ़ाइल हटाने के बजाय दो >> के रूप में टाइप कर सकते हैं ।
ग्रेग

ओह। यह सिर्फ डरावना है। मैंने कभी भी इस तरह से बिल्ली और पाइप का उपयोग करने (गाली देने) के बारे में नहीं सोचा है! इसलिए हमारे पास "टच" कमांड है। ;-) शांत उदाहरण के लिए बनाता है।
ब्रायन नोब्लुच

जवाबों:


16

क्योंकि यह डेटा को पढ़ने से पहले फ़ाइल को खोलता और काटता है - यह शेल हो रहा है, रीडायरेक्शंस को शेल द्वारा शुरू करने से पहले ही संसाधित किया जाता है cat


13

>पुनर्निर्देशन पहले होता है और खुल जाता है file.txtलेखन जो किसी भी मौजूदा सामग्री को साफ करता है के लिए।


यह उत्तर कुछ भ्रामक है - @ हैकर अधिक सटीक है। मेरे सिस्टम पर, विनिर्देश के क्रम में पुनर्निर्देशन को संसाधित किया जाता है। यही है, <पहले होता है, और फिर >, लेकिन बाद में न केवल "लिखने के लिए", बल्कि ट्रंकेशन ( O_TRUNC) के साथ खुलता है , जो कि "मौजूदा सामग्री को साफ करता है।" @ हॅकर सही है, ऐसा होने cat(1)से पहले भी होता है।
पायलट 20
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.