यदि मैं कई फ़ाइलों के साथ निर्देशिका में ls folder | head
चलाता हूं, तो निष्पादन समय ls folder | tail
से लगभग 50 गुना तेज है। क्या head
कमांड ls
को निष्पादित करने से रोकता है जब उसके पास पर्याप्त (10) रेखाएं होती हैं?क्या पाइपिंग एलएस को हेड स्टॉप करना है, यह निष्पादन आधा रास्ता है?
मुझे इसका कहीं भी जवाब नहीं मिला क्योंकि "पाइप टू हेड" मुझे Google या यहां पर असंबद्ध परिणाम देता है।
यदि उत्तर नहीं है, तो क्या ls
पूरी तरह से चलाने और head
के साथ आउटपुट काटने के बजाय केवल कुछ फ़ाइलों को सूचीबद्ध करने का एक और अधिक प्रभावी तरीका है?
इससे लोगों के लिए बहुत भ्रम पैदा होता है जो इस व्यवहार की अपेक्षा नहीं करते हैं। हम अक्सर लोगों से पूछेंगे कि "जब मैं इसे 'हेड' पर पाइप करता हूं तो मेरा प्रोग्राम क्रैश/त्रुटि क्यों होता है?"। और जवाब आमतौर पर यह माना जाता है कि कार्यक्रम ने अपने सभी लिखने को 'stdout' में सफल माना होगा। –