विम के साथ पाठ फ़ाइल का संपादन पूंछ -f अद्यतन नहीं करता है


17

मैं tail -f a.txtनामक फाइल पर अपडेट देखने के लिए उपयोग कर रहा हूं a.txt

यदि मैं ls -a >> a.txtदूसरे वर्चुअल कंसोल में कुछ का उपयोग करके फ़ाइल को अपडेट करता हूं , तो परिवर्तन वास्तविक समय में पहले एक में प्रदर्शित होंगे।

अगर मैं दूसरे वर्चुअल कंसोल में Vim का उपयोग करके फ़ाइल को अपडेट करता हूं, तो परिवर्तन पहले एक में प्रदर्शित नहीं होंगे।

मैं जरूरी नहीं कि यह उस विंडो में अपडेट को ट्रिगर करने की उम्मीद करूं - लेकिन यह वास्तव में tail -fकमांड चलाने वाले टर्मिनल को अपडेट क्यों नहीं करता है ?


5
tail -fappends के लिए जाँच करता है। tail -Fफ़ाइल नाम के लिए जाँच करता है।
थ्रू जूल

जवाबों:


31

यदि आप किसी फ़ाइल को संपादित करते हैं vim, तो आमतौर पर यह फ़ाइल को मेमोरी में पढ़ता है, फिर एक नई फ़ाइल लिखता है। तो tailअब फाइल की आउट डेट कॉपी पर काम कर रहा है (जो फ़ाइल सिस्टम में तब तक रहता है जब तक tail(और कोई भी प्रोग्राम) उसका इस्तेमाल करना बंद नहीं कर देता।

आप tailफ़ाइल नाम (फ़ाइल के बजाय) का उपयोग करके बना सकते हैं:

tail -F yourfile  

ऊपरी मामले पर ध्यान दें F


1
tail -Fकाम करता है! कंसोल अब एक संदेश प्रदर्शित कर रहा है जैसे "a.txt को बदल दिया गया है: नई फ़ाइल का अंत" और तदनुसार अपडेट। धन्यवाद!
एलेक्स

8

मेरी समझ यह है कि आम तौर पर जब आप संपादन करते हैं vim, तो आप फ़ाइल की एक कॉपी संपादित कर रहे होते हैं, जिसे डिस्क में अपने परिवर्तन लिखते समय स्थानांतरित कर दिया जाता है। चूँकि यह unlinkमूल के द्वारा होता है और moveनए को जगह में tailरखता है, मूल फ़ाइल में नए परिवर्तन नहीं देखता है।

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