आप GNU tail
उपयोगिता का वर्णन करते हैं । इन दो झंडों के बीच का अंतर यह है कि अगर मैं एक फ़ाइल खोलता हूं, उदाहरण के लिए एक लॉग फ़ाइल, जैसे:
$ tail -f /var/log/messages
... और अगर मेरी मशीन पर लॉग रोटेशन की सुविधा उस लॉग फ़ाइल को घुमाने का फैसला करती है, जबकि मैं इसे लिखे जा रहे संदेशों को देख रहा हूं ("रोटेट" का अर्थ है हटाना या किसी अन्य स्थान पर जाना आदि), जो आउटपुट मैं देख रहा हूं वह बस रूक जा।
अगर मैं फ़ाइल को tail
इस तरह से खोलता हूं :
$ tail -F /var/log/messages
... और फिर से, फ़ाइल को घुमाया जाता है, आउटपुट मेरे कंसोल में प्रवाहित होता रहेगा क्योंकि tail
फ़ाइल जैसे ही दोबारा उपलब्ध होगी, यानी लॉग में प्रोग्राम (एस) लिखने के बाद नया लिखना शुरू कर दिया /var/log/messages
।
मुक्त बीएसडी सिस्टम पर, कोई -F
विकल्प नहीं है, लेकिन जीएनयू सिस्टम पर ऐसा tail -f
व्यवहार करेगा , जैसे tail -F
कि आपको संदेश मिलता है
tail: file has been replaced, reopening.
आउटपुट में जब आप देख रहे हैं फ़ाइल गायब हो जाती है और फिर से दिखाई देती है।
आप इस परीक्षण कर सकते हैं
एक शेल सत्र में, करते हैं
$ cat >myfile
वह अब आपके लिए सामान टाइप करने की प्रतीक्षा करेगा। बस आगे बढ़ें और कुछ गिबरिश, कुछ पंक्तियाँ लिखें। यह सब फ़ाइल में सहेजा जाएगा myfile
।
में एक और खोल सत्र (शायद एक और टर्मिनल में, बाधित किए बिनाcat
):
$ tail -f myfile
यह myfile
कंसोल में (अंत) सामग्री दिखाएगा । यदि आप पहले शेल सत्र में वापस जाते हैं और कुछ और टाइप करते हैं, तो आउटपुट तुरंत tail
दूसरे शेल सत्र में दिखाया जाएगा ।
अब छोड़ दिया cat
दबाकर Ctrl+D, और हटानेmyfile
फ़ाइल:
$ rm myfile
फिर बिल्ली को फिर से चलाएँ:
$ cat >myfile
... और कुछ टाइप करें, कुछ पंक्तियाँ।
जीएनयू के साथ tail
, ये लाइनें दूसरे शेल सत्र (जहां अभी भी चल रही हैं) में दिखाई नहीं देंगी tail -f
।
व्यायाम को दोहराएं tail -F
और अंतर देखें।