क्या `टेल-एफ`` कम + एफ` से अधिक कुशल है?


34

इस लेख का उपयोग करने के कुछ कारण बताया less +Fखत्म हो गया tail -f। अधिकांश कारण सुविधाओं के बारे में हैं , तकनीकी कारणों से नहीं : less +Fफ़ाइल के माध्यम से हाइलाइट, खोज, नेविगेट कर सकते हैं।

तकनीकी कारणों के बारे में कैसे ?

AFAIK, lessफ़ाइल को अपडेट करने के लिए प्रत्येक एक सेकंड के मतदान का उपयोग करता है, जबकि tail, POSIX परिभाषित लूप का उपयोग करता है जो 1 सेकंड के लिए सोता है और उपलब्ध किसी भी बाइट को कॉपी करता है। यह पर्याप्त है लेकिन POSIX ने कार्यान्वयन को और अधिक कुशल विधि का उपयोग करने के लिए प्रोत्साहित किया। कम से कम ग्नू टेल का उपयोग सरल है , इसलिए यह अधिक कुशल है।

less फ़ाइल सामग्री को स्मृति में भी रखता है, इसलिए विशाल फ़ाइल के साथ, कुछ गीगाबाइट की तरह, यह आपके कंप्यूटर को धीमा कर सकता है।

तो, वहाँ किसी भी अन्य तकनीकी कारणों से tail -fअधिक उपयोग करने के लिए है less +F?

जवाबों:


37

मुझे लगता है कि आपने मुख्य बिंदु को कवर किया है: less +Fपूरी फ़ाइल को पढ़ता है, जबकि कई प्रणालियों पर tail -fकेवल फ़ाइल का अंत पढ़ता है, और यहां तक ​​कि उन प्रणालियों पर भी जहां यह पूरी फ़ाइल को पढ़ता है, कम से कम यह पूरी फ़ाइल नहीं रखता है याद में। यह less +Fबहुत बड़ी फ़ाइलों के लिए अव्यावहारिक बनाता है । हालाँकि, आप रन कर सकते हैं less -n +F, जो lessलाइन नंबर प्रदर्शित नहीं करने की कीमत पर केवल फ़ाइल के अंत में पढ़ने का कारण बनता है।

हुड के बीच, less -n +Fऔर tail -f, मुख्य अंतर यह है कि tailकुछ प्लेटफार्मों पर फ़ाइल परिवर्तन अधिसूचना सेवा का उपयोग करता है (उदाहरण के लिए, लिनक्स पर inotify), जो इसे तुरंत नया डेटा प्रदर्शित करने की अनुमति देता है, जबकि नया डेटा प्रदर्शित lessकरने में 1 सेकंड तक का समय लग सकता है। क्योंकि यह एक लूप में नए डेटा के लिए जाँच करता है और चेकों के बीच सोता है।

बीच एक और अंतर less +Fऔर tail -fवह यह है कि lessअपने इनपुट फिल्टर लागू करेगा, लेकिन आमतौर पर लॉग फाइल पर कोई प्रभाव नहीं होगा।

एक तकनीकी अंतर जो इसके पक्ष में less +Fहै कि आप -Sविकल्प के साथ स्क्रीन की चौड़ाई पर इसे अलग कर सकते हैं , जबकि tailआपको पूरी लाइन प्रदर्शित करने के अलावा कोई विकल्प नहीं है, चाहे वह कितनी भी लंबी हो।

इंटरफ़ेस-वार, वहाँ उपयोग करने के लिए एक फायदा नहीं है less। tail -fजब कुछ होता है तो नोटिस करना उपयोगी होता है। आप इसे पृष्ठभूमि में भी चला सकते हैं। यदि कुछ होता है और आप फ़ाइल को अधिक विस्तार से देखना चाहते हैं, तो आप इसे lessकिसी अन्य टर्मिनल में खोल सकते हैं ।

यदि आप कई फाइलें देखना चाहते हैं, तो मल्टीटैल जाने का रास्ता है। यहां तक ​​कि एक एकल फ़ाइल के लिए, मल्टीटैल में अतिरिक्त निफ्टी विशेषताएं हैं जैसे कि फ़िल्टरिंग और रंगकरण।


बहुत बड़ी फ़ाइल के साथ, क्या 'कम -n 99.99p + F' पूरी फाइल को पढ़ने से कम रोकता है?
cuonglm

1
@cuonglm आह, ठीक है, यह करता है। बस less -nइतना ही काफी है, जिससे कम-से-अंत-फिर-पठन-पाठनी रणनीति का उपयोग किया जाता है।
गिल्स एसओ- बुराई को रोकना '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.