2010-01-22 13 views
6

मेरे पास एक प्रोग्राम है जिसके लिए विभिन्न फ़ाइलों के पथ की आवश्यकता होती है। फाइलें अलग-अलग फ़ोल्डरों में रहती हैं और अनियमित अंतराल पर लगातार अद्यतन होती हैं।फ़ोल्डर में नवीनतम फ़ाइल के लिए सिंबलिक लिंक

जब फ़ाइलें अपडेट की जाती हैं, तो वे नाम बदलते हैं, उदाहरण के लिए, फ़ोल्डर dir1 में मेरे पास fv01 और fv02 है। बाद में किसी दिन fv02_v1 जोड़ता है; किसी दिन fv03 और उसके बाद के दिन के बाद। दूसरे शब्दों में, मेरे पास हमेशा एक अद्यतन फ़ाइल है लेकिन अलग-अलग नाम के साथ।

मैं इन फ़ाइलों, जैसे कि कहा लिंक हमेशा बनाई नवीनतम फ़ाइल को इंगित करता है करने के लिए अपने "रन" फ़ोल्डर में एक प्रतीकात्मक लिंक बनाना चाहते हैं।

मैं अजगर या बैश में ऐसा कर सकते हैं, लेकिन मैं सोच रहा था क्या, वहाँ बाहर है के रूप में इस मुश्किल से एक असामान्य समस्या है।

आप इसके बारे में कैसे जाएंगे?

धन्यवाद।

जुआन

पीएस। मेरा ऑपरेटिंग सिस्टम लिनक्स है। मेरे पास वर्तमान में एक साधारण डेमॉन (पायथन) है जो नवीनतम फाइल के लिए हर बार एक बार (हर मिनट रीफ्रेश करता है) दिखता है। मुझे लगता है कि मुझे एक ओवरकिल लगता है।

+1

मैं सोच रहा हूँ अगर यह एक सर्वर गलती (http://serverfault.com/) प्रश्न के और अधिक नहीं होना चाहिए। – Omnifarious

+0

ओपी कमांड वाक्यविन्यास की तलाश नहीं कर रहा है। ओपी पाइथन या बैश स्क्रिप्ट लिखने से समस्या को हल करने के लिए एक सरल या अधिक सुरुचिपूर्ण तरीका ढूंढ रहा है जो समय-समय पर 'ln' स्वचालित रूप से करता है। – Omnifarious

+0

वह इसे बैश या पायथन में करना चाहता है। मुझे प्रोग्रामिंग प्रश्न की तरह लगता है। – Duck

उत्तर

3

जब तक वहाँ कुछ बाध्यकारी कारण आप (निर्देशिका में फ़ाइलों की जैसे हजारों) अनकहा छोड़ दिया है कि अभी जिस तरह से आप एक स्क्रिप्ट संशोधन समय से फ़ाइलें छँटाई के साथ सुझाव है करना है। कोई गुप्त विधि नहीं है जिसे मैं जानता हूं।

आप अपनी निर्देशिकाओं की निगरानी के लिए inotify का उपयोग कर एक डिमन लिख सकते हैं और तुरंत अपने लिंक सेट कर सकते हैं लेकिन यह ओवरकिल जैसा लगता है।

संपादित: मैं बस अपने संपादित देखा। चूंकि आपके पास पहले से ही डिमन है, इसलिए संभवतः इतना बुरा विचार नहीं हो सकता है। यह लगातार पूछताछ की तुलना में कुछ और अधिक कुशल होगा क्योंकि ओएस आपको बताएगा कि आपकी निर्देशिका में कुछ बदल गया है।

मैं अजगर अच्छी तरह से विशिष्ट कुछ भी करने के लिए आप बात करने के लिए पर्याप्त जानकारी नहीं है लेकिन वहाँ inotify के लिए एक आवरण मौजूद होना चाहिए।

+0

धन्यवाद, डक। मैं अंत में 'libc' संस्करण कारणों के लिए' inotify' का उपयोग करने में असमर्थ था, लेकिन जब आप अंत में अपग्रेड करते हैं तो आपको अधिक सामान्य समाधान प्रदान करने के लिए एक अच्छा तरीका मिल जाता है। सिर्फ रिकॉर्ड के लिए, एक पाइथन inotify मॉड्यूल है। एक बार फिर धन्यवाद! (+1 और स्वीकृत) – Escualo