जब फ़ाइल बदली जाती है तो कुछ करें


10

जब मैं एक LaTeX दस्तावेज़ लिखता हूं, तो मैं अक्सर संकलन करने के लिए अपने संपादक में F6 दबाता हूं। या जब मैं SASS का उपयोग करता हूं, तो मैं अक्सर makeअपने .scssमें कन्वर्ट करने के लिए टाइप करता हूं .css

अब मैं मशीन को गंदा काम करने देना चाहता हूं makeऔर हर बार किसी दिए गए फ़ाइल को बदल देता हूं ।

अब तक मैंने एक टर्मिनल विंडो खुली रखी और तीर-अप और रिटर्न दबाया। या मैंने इस्तेमाल किया watch make, लेकिन यह एक अजीब समाधान की तरह लगता है।

क्या किसी फ़ाइल को बदलने पर लिनक्स पर कुछ करने का एक अच्छा तरीका है?

जवाबों:


4

आप खोज रहे हैं inotifywait, inotify-tools का हिस्सा । प्रोजेक्ट की साइट पर इसका उपयोग करने के कुछ उदाहरण हैं, लेकिन एक सरल तरीका है,

while true; do inotifywait code.cpp -e modify; make; done

जिसका मुख्य भाग है,

inotifywait code.cpp -e modify

वह आदेश तब तक प्रतीक्षा करेगा जब तक code.cppसंशोधित नहीं किया जाएगा । अनंत लूप में रखो और makeहर संशोधन के बाद इसे लगातार पुनर्निर्माण करने का कारण बनता है।

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


यही तो मैं देख रहा हूँ!
मार्टिन उडिंग

1

पर एक नज़र डालें incron , एक क्रॉन की तरह पैकेज है कि प्रतिक्रिया के बजाय समय की घटनाओं की घटनाओं फाइल सिस्टम के लिए,। पैकेज में एक डेमॉन ( incrond) और एक टेबल मैनिप्युलेटर ( incrontab) है, जो क्रोन के प्रसिद्ध crond/ crontabजोड़े के अनुरूप है ।

makeजब भी विशेष फाइल और / या निर्देशिकाओं को संशोधित किया जाता है, तो आप आसानी से चलाने की व्यवस्था कर सकते हैं ।


ऐसा लगता है कि एक हाथ में थोड़ा ओवरकिल है, लेकिन दूसरी तरफ यह सिर्फ सही उपकरण है। मुझे इसकी जांच करनी होगी, शायद मैं इसे प्रत्येक प्रोग्रामिंग सत्र के लिए सक्षम और अक्षम कर सकता हूं।
मार्टिन उडिंग

0

इसके बजाय watch make, कैसे के बारे में watch ls? तब makeजब टाइमस्टैम्प बदल जाता है।


ठीक है, टाइमस्टैम्प की पहले से ही जाँच कर लें, इसलिए समय की जाँच करना व्यर्थ है और फिर समय की जाँच करें।
मार्टिन यूडिंग

रनिंग एलएस की तुलना में राइट लेकिन रनिंग मेक ज्यादा महंगा है।
स्कॉट सी विल्सन

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