">" और ">>" में क्या अंतर है?


12

बीच क्या अंतर है ls >और ls >>? मुझे अपने जीसीएसई कंप्यूटिंग के लिए इसे समझने की आवश्यकता है लेकिन यह नहीं पता कि अंतर क्या है।


1
नीचे दिए गए अच्छे उत्तर के अलावा, कृपया stackoverflow.com/a/984761/1841533 पर 2 डी (और सबसे उत्कीर्ण) उत्तर देखें: फ़ाइल में लिखने के लिए >> का उपयोग कर (उदा: एक लॉग) भी अच्छा दुष्प्रभाव है यदि फाइल को छोटा किया जाता है तो "नुल" वर्ण सैफ फ़ाइल की शुरुआत में दिखाई नहीं देता है, जबकि प्रक्रिया अभी भी इसे लिखती है! (पूर्व: लॉग फ़ाइल रोटेशन के दौरान)। क्योंकि "foo> फ़ाइल" की तलाश नहीं है, यह आकार में बदलाव को नोटिस नहीं करता है और फिर भी शुरुआत से आगे की ओर इशारा करता है, नट के साथ ओएस भरता है। foo >> फ़ाइल मांगता है और इसलिए नई स्थिति (शुरुआत) की ओर इशारा करता है।
ओलिवियर दुलैक

चूंकि यह एक शैक्षिक प्रश्न है, मेरा सुझाव है कि आप प्रासंगिक प्रलेखन के साथ काम करना सीखें: बैश संदर्भ मैनुअल, अनुभाग "पुनर्निर्देशन" (इसके माध्यम से भी सुलभ man bash)।
डेविड फ़ॉस्टर 01

जवाबों:


28

>& >>पुनर्निर्देशन ऑपरेटर हैं; वे इस मामले में ls, कहीं और कुछ का आउटपुट ट्रांसफर करते हैं। यदि यह आउटपुट किसी फ़ाइल में जाता है, >तो फ़ाइल को काट देगा - अर्थात किसी भी पिछली सामग्री को हटा >>देगा , जबकि पिछले सामग्री को रखते हुए फ़ाइल के अंत में नए डेटा को जोड़ देगा। यह किसी भी इनपुट के साथ काम करेंगे, तो echoऔर cat, उदाहरण के लिए, यह भी इस तरह से इस्तेमाल किया जा सकता।

इसके अलावा ब्याज एक |ऑपरेटर है, जो डेटा को किसी अन्य एप्लिकेशन को पास करता है - इसलिए ls | cat -nआपको एक लाइन-क्रमांकित लिस्टिंग मिलेगी!

पाइप प्रासंगिक शब्द है।


2
ट्रंकट या ओवरराइट?
डीके बोस

2
@DKBose straceआउटपुट के लिए bash -c 'echo a > blah':, open("blah, O_WRONLY|O_CREAT|O_TRUNC, 0666)इसलिए सही टर्म होगा।
मूरू

"पाइप" और "आउटपुट पुनर्निर्देशन" भी, जिसे आप अपने उत्तर में उपयोग करते हैं। बहुत बढ़िया।
0xSheepdog

पाया कि मेरा क्या मतलब है: इस अच्छे उत्तर के अलावा, कृपया stackoverflow.com/a/984761/1841533 पर दूसरा (और सबसे उत्कीर्ण) उत्तर देखें : >>फ़ाइल में लिखने के लिए उपयोग करना (उदा: एक लॉग) भी अच्छा पक्ष है करने के लिए प्रभाव नहीं करता है, तो थोड़ी देर प्रक्रिया अभी भी यह करने के लिए लिख फ़ाइल काट दिया गया है "नुल" वर्ण सैफ फ़ाइल की शुरुआत में दिखाई देते हैं! (पूर्व: लॉग फ़ाइल रोटेशन के दौरान)। क्योंकि "foo> फ़ाइल" की तलाश नहीं है, यह आकार में बदलाव को नोटिस नहीं करता है और फिर भी शुरुआत से आगे की ओर इशारा करता है, नट के साथ ओएस भरता है। foo >>fileचाहता है और इसलिए नई स्थिति (शुरुआत) की ओर इशारा करता है।
ओलिवियर दुलैक

5

प्रतीकों >और >>एक फ़ाइल में आउटपुट पुनर्निर्देशित करने के लिए उपयोग किया जाता है।

यदि फ़ाइल मौजूद नहीं है तो दोनों फ़ाइल बनाएंगे। यदि फ़ाइल पहले से मौजूद है, तो >उस फ़ाइल को अधिलेखित कर >>देगी जहां फ़ाइल में डेटा जोड़ा जाएगा।

तो अगर यह मौजूद नहीं है, तो ls > myfileएक दस्तावेज बनाया जाएगा myfile। यदि myfileपहले से मौजूद है और कुछ डेटा सम्‍मिलित है, तो यह आपके द्वारा पास किए गए नए डेटा से अधिलेखित हो जाएगा।

जबकि ls >> myfileयदि मौजूद नहीं है और इसे करने के लिए डेटा लिखने के लिए एक फ़ाइल पैदा करेगा। यदि फ़ाइल कुछ डेटा के साथ मौजूद है, तो इसके अंत में नया डेटा जुड़ जाता है।


0

यदि आप एकल> का उपयोग करते हैं, तो यह फ़ाइल को अधिलेखित कर देगा यदि यह पहले से मौजूद है। जब आप इस एक का उपयोग करते हैं तो बहुत सावधान रहें।

यदि आप दो का उपयोग करते हैं >>, तो यह पहले से ही मौजूद है (दूसरे शब्दों में, फ़ाइल के नीचे लिखना शुरू करें)। अन्यथा, यह एक नई फ़ाइल बनाता है यदि यह मौजूद नहीं है।


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